Bird
Raised Fist0
NumPydata~20 mins

Counting with boolean arrays in NumPy - Practice Problems & Coding Challenges

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Challenge - 5 Problems
🎖️
Boolean Counting Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
2:00remaining
Counting True values in a boolean NumPy array
What is the output of this code snippet that counts True values in a boolean NumPy array?
NumPy
import numpy as np
arr = np.array([True, False, True, True, False])
count = np.sum(arr)
print(count)
A4
B2
C5
D3
Attempts:
2 left
💡 Hint
Remember that True is treated as 1 and False as 0 in NumPy when summing.
❓ data_output
intermediate
2:00remaining
Counting True values along an axis in a 2D boolean array
Given this 2D boolean array, what is the output of counting True values along axis 1?
NumPy
import numpy as np
arr = np.array([[True, False, True], [False, False, True], [True, True, True]])
counts = np.sum(arr, axis=1)
print(counts)
A[1 2 3]
B[2 1 3]
C[3 1 2]
D[2 2 2]
Attempts:
2 left
💡 Hint
Sum along axis 1 means count True values in each row.
🔧 Debug
advanced
2:00remaining
Identify the error in counting True values with incorrect axis
What error does this code raise when trying to count True values along axis 2 in a 2D boolean array?
NumPy
import numpy as np
arr = np.array([[True, False], [False, True]])
count = np.sum(arr, axis=2)
print(count)
AAxisError: axis 2 is out of bounds for array of dimension 2
BTypeError: unsupported operand type(s) for +: 'bool' and 'int'
CValueError: operands could not be broadcast together
DNo error, output is [1 1]
Attempts:
2 left
💡 Hint
Check the dimensions of the array and the axis argument.
🚀 Application
advanced
2:00remaining
Counting values greater than a threshold using boolean arrays
Given a NumPy array of numbers, which option correctly counts how many values are greater than 10?
NumPy
import numpy as np
arr = np.array([5, 12, 7, 20, 15])
count = ???
print(count)
Anp.sum(arr > 10)
Bnp.sum(arr >= 10)
Cnp.count_nonzero(arr < 10)
Dnp.count_nonzero(arr == 10)
Attempts:
2 left
💡 Hint
Create a boolean array where values are greater than 10, then sum True values.
🧠 Conceptual
expert
2:00remaining
Understanding boolean array counting with np.count_nonzero vs np.sum
Which statement best describes the difference between np.count_nonzero(boolean_array) and np.sum(boolean_array) when counting True values?
Anp.count_nonzero counts False values; np.sum counts True values.
Bnp.count_nonzero returns the total number of elements; np.sum counts only True values.
Cnp.count_nonzero counts True values directly; np.sum treats True as 1 and sums them, both give the same result for boolean arrays.
Dnp.count_nonzero returns a boolean array; np.sum returns an integer count.
Attempts:
2 left
💡 Hint
Think about how True and False are treated in NumPy arithmetic and counting.

Practice

(1/5)
1. What does summing a boolean array in NumPy do?
arr = np.array([True, False, True])
What is arr.sum()?
easy
A. Returns the length of the array
B. Counts how many False values are in the array
C. Counts how many True values are in the array
D. Returns an error because booleans cannot be summed

Solution

  1. Step 1: Understand boolean values in NumPy

    In NumPy, True is treated as 1 and False as 0 when summed.
  2. Step 2: Sum the boolean array

    Summing [True, False, True] is 1 + 0 + 1 = 2.
  3. Final Answer:

    Counts how many True values are in the array -> Option C
  4. Quick Check:

    True count = 2 [OK]
Hint: Sum boolean arrays to count True values quickly [OK]
Common Mistakes:
  • Thinking sum counts False values
  • Believing sum returns array length
  • Expecting an error when summing booleans
2. Which of the following is the correct syntax to count how many elements in arr = np.array([1, 2, 3, 4]) are greater than 2 using boolean arrays?
easy
A. (arr > 2).sum()
B. arr > 2.sum()
C. arr.sum() > 2
D. arr > 2).sum()

Solution

  1. Step 1: Create boolean array for condition

    arr > 2 creates a boolean array: [False, False, True, True].
  2. Step 2: Sum the boolean array correctly

    We must sum the boolean array, so use parentheses: (arr > 2).sum().
  3. Final Answer:

    (arr > 2).sum() -> Option A
  4. Quick Check:

    Correct syntax uses parentheses [OK]
Hint: Use parentheses around condition before sum() [OK]
Common Mistakes:
  • Missing parentheses causing wrong order
  • Using sum() on condition without parentheses
  • Confusing comparison and sum order
3. What is the output of this code?
import numpy as np
arr = np.array([5, 3, 8, 1, 6])
count = (arr % 2 == 0).sum()
print(count)
medium
A. 3
B. 0
C. 5
D. 2

Solution

  1. Step 1: Create boolean array for even numbers

    arr % 2 == 0 checks which elements are even: [False, False, True, False, True].
  2. Step 2: Sum True values to count evens

    Sum is 0 + 0 + 1 + 0 + 1 = 2.
  3. Final Answer:

    2 -> Option D
  4. Quick Check:

    Count of even numbers = 2 [OK]
Hint: Sum boolean condition to count matching elements [OK]
Common Mistakes:
  • Counting odd numbers instead
  • Forgetting to use parentheses
  • Misunderstanding modulo operator
4. The code below is intended to count how many values in arr are less than 10, but it raises an error. What is the error and how to fix it?
import numpy as np
arr = np.array([7, 12, 5, 20])
count = arr < 10.sum()
print(count)
medium
A. Error: Missing import statement
B. Error: 10.sum() is invalid; fix by using (arr < 10).sum()
C. No error; output is boolean array
D. Error: arr < 10 is invalid; fix by using arr.sum() < 10

Solution

  1. Step 1: Identify the error in expression

    10.sum() is invalid because 10 is an integer, not an array.
  2. Step 2: Correct the syntax to sum boolean array

    Use parentheses to sum the boolean array: (arr < 10).sum().
  3. Final Answer:

    Error: 10.sum() is invalid; fix by using (arr < 10).sum() -> Option B
  4. Quick Check:

    Parentheses needed before sum() [OK]
Hint: Always put parentheses around condition before sum() [OK]
Common Mistakes:
  • Calling sum() on number instead of boolean array
  • Confusing comparison and sum order
  • Ignoring error message details
5. Given a 2D NumPy array data = np.array([[3, 7, 2], [5, 1, 8], [6, 4, 9]]), how can you count how many elements are greater than 5 across the entire array?
hard
A. (data > 5).sum()
B. data[data > 5].count()
C. data.sum() > 5
D. np.count(data > 5)

Solution

  1. Step 1: Create boolean array for elements > 5

    data > 5 creates a boolean array marking elements greater than 5.
  2. Step 2: Sum True values to count elements

    Use (data > 5).sum() to count all True values in the 2D array.
  3. Final Answer:

    (data > 5).sum() -> Option A
  4. Quick Check:

    Sum boolean mask counts elements > 5 [OK]
Hint: Sum boolean mask over entire array to count matches [OK]
Common Mistakes:
  • Using sum() on data directly
  • Trying to use count() method on NumPy array
  • Using non-existent np.count() function