Bird
Raised Fist0
NumPydata~10 mins

Counting with boolean arrays in NumPy - Interactive Code Practice

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
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to count how many values in the array are True.

NumPy
import numpy as np
arr = np.array([True, False, True, True, False])
count_true = np.[1](arr)
Drag options to blanks, or click blank then click option'
Asum
Bcount
Cmean
Dlen
Attempts:
3 left
💡 Hint
Common Mistakes
Using count() which does not exist for numpy arrays.
Using len() which returns total length, not count of True.
Using mean() which returns average, not count.
2fill in blank
medium

Complete the code to count how many values in the array are False.

NumPy
import numpy as np
arr = np.array([True, False, True, False, False])
count_false = np.[1](~arr)
Drag options to blanks, or click blank then click option'
Asum
Blen
Ccount
Dmean
Attempts:
3 left
💡 Hint
Common Mistakes
Using count() which is not a numpy function.
Using mean() which calculates average, not count.
Using len() which returns total length.
3fill in blank
hard

Fix the error in the code to count True values along axis 0.

NumPy
import numpy as np
arr = np.array([[True, False], [False, True], [True, True]])
count_true_axis0 = np.sum(arr, axis=[1])
Drag options to blanks, or click blank then click option'
A1
B2
C0
D-1
Attempts:
3 left
💡 Hint
Common Mistakes
Using axis=1 counts per row, not per column.
Using axis=2 causes error because array is 2D.
Using axis=-1 counts last axis but may confuse beginners.
4fill in blank
hard

Fill both blanks to create a dictionary counting words longer than 3 letters.

NumPy
words = ['apple', 'bat', 'car', 'door', 'egg']
lengths = {word: [1] for word in words if [2]
Drag options to blanks, or click blank then click option'
Alen(word)
Bword
Clen(word) > 3
Dword > 3
Attempts:
3 left
💡 Hint
Common Mistakes
Using word > 3 compares strings to numbers, causing error.
Using word instead of len(word) for length.
Missing the condition to filter words.
5fill in blank
hard

Fill all three blanks to create a dictionary of uppercase words and their lengths if length > 3.

NumPy
words = ['apple', 'bat', 'car', 'door', 'egg']
result = { [1]: [2] for [3] in words if len([3]) > 3 }
Drag options to blanks, or click blank then click option'
Aword.upper()
Blen(word)
Cword
Dwords
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'words' instead of 'word' in the loop variable.
Using 'words.upper()' which is invalid.
Not filtering words by length.

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