Counting with boolean arrays helps you quickly find how many items meet a condition. It is simple and fast.
Counting with boolean arrays in NumPy
Start learning this pattern below
Jump into concepts and practice - no test required
import numpy as np # Create a boolean array by applying a condition boolean_array = (array > value) # Count True values using np.sum count_true = np.sum(boolean_array)
Boolean arrays contain only True or False values.
True counts as 1 and False counts as 0 when summed.
import numpy as np scores = np.array([70, 85, 40, 90]) passed = scores >= 60 count_passed = np.sum(passed) print(count_passed)
import numpy as np empty_array = np.array([]) boolean_empty = empty_array > 0 count_empty = np.sum(boolean_empty) print(count_empty)
import numpy as np single_value = np.array([100]) boolean_single = single_value < 50 count_single = np.sum(boolean_single) print(count_single)
import numpy as np values = np.array([10, 20, 30, 40]) boolean_end = values == 40 count_end = np.sum(boolean_end) print(count_end)
This program creates an array of temperatures. It finds which days are hotter than 25 degrees and counts them.
import numpy as np # Create an array of temperatures temperatures = np.array([22, 35, 18, 27, 30, 15, 40]) # Condition: temperatures above 25 degrees hot_days = temperatures > 25 # Print boolean array print('Hot days boolean array:', hot_days) # Count how many days are hot count_hot_days = np.sum(hot_days) print('Number of hot days:', count_hot_days)
Time complexity is O(n), where n is the number of elements in the array.
Space complexity is O(n) for the boolean array created by the condition.
Common mistake: forgetting that np.sum counts True as 1 and False as 0, so you must use a boolean array.
Use counting with boolean arrays when you want a quick count of items meeting a condition instead of looping manually.
Boolean arrays hold True/False values from conditions.
Summing boolean arrays counts how many True values there are.
This method is fast and easy for counting items that meet conditions.
Practice
arr = np.array([True, False, True])What is
arr.sum()?Solution
Step 1: Understand boolean values in NumPy
In NumPy, True is treated as 1 and False as 0 when summed.Step 2: Sum the boolean array
Summing[True, False, True]is 1 + 0 + 1 = 2.Final Answer:
Counts how many True values are in the array -> Option CQuick Check:
True count = 2 [OK]
- Thinking sum counts False values
- Believing sum returns array length
- Expecting an error when summing booleans
arr = np.array([1, 2, 3, 4]) are greater than 2 using boolean arrays?Solution
Step 1: Create boolean array for condition
arr > 2creates a boolean array: [False, False, True, True].Step 2: Sum the boolean array correctly
We must sum the boolean array, so use parentheses:(arr > 2).sum().Final Answer:
(arr > 2).sum() -> Option AQuick Check:
Correct syntax uses parentheses [OK]
- Missing parentheses causing wrong order
- Using sum() on condition without parentheses
- Confusing comparison and sum order
import numpy as np arr = np.array([5, 3, 8, 1, 6]) count = (arr % 2 == 0).sum() print(count)
Solution
Step 1: Create boolean array for even numbers
arr % 2 == 0checks which elements are even: [False, False, True, False, True].Step 2: Sum True values to count evens
Sum is 0 + 0 + 1 + 0 + 1 = 2.Final Answer:
2 -> Option DQuick Check:
Count of even numbers = 2 [OK]
- Counting odd numbers instead
- Forgetting to use parentheses
- Misunderstanding modulo operator
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)
Solution
Step 1: Identify the error in expression
10.sum()is invalid because 10 is an integer, not an array.Step 2: Correct the syntax to sum boolean array
Use parentheses to sum the boolean array:(arr < 10).sum().Final Answer:
Error: 10.sum() is invalid; fix by using (arr < 10).sum() -> Option BQuick Check:
Parentheses needed before sum() [OK]
- Calling sum() on number instead of boolean array
- Confusing comparison and sum order
- Ignoring error message details
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?Solution
Step 1: Create boolean array for elements > 5
data > 5creates a boolean array marking elements greater than 5.Step 2: Sum True values to count elements
Use(data > 5).sum()to count all True values in the 2D array.Final Answer:
(data > 5).sum() -> Option AQuick Check:
Sum boolean mask counts elements > 5 [OK]
- Using sum() on data directly
- Trying to use count() method on NumPy array
- Using non-existent np.count() function
