0
0
NumPydata~20 mins

Why boolean masking matters in NumPy - Challenge Your Understanding

Choose your learning style9 modes available
Challenge - 5 Problems
🎖️
Boolean Masking Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
Predict Output
intermediate
2:00remaining
Output of boolean masking on a NumPy array
What is the output of this code snippet using boolean masking on a NumPy array?
NumPy
import numpy as np
arr = np.array([10, 15, 20, 25, 30])
mask = arr > 20
result = arr[mask]
print(result)
A[25 30]
B[10 15 20]
C[20 25 30]
D[10 15]
Attempts:
2 left
💡 Hint
Think about which elements are greater than 20 in the array.
data_output
intermediate
1:30remaining
Number of elements selected by boolean mask
How many elements does this boolean mask select from the array?
NumPy
import numpy as np
arr = np.array([5, 12, 17, 9, 3, 21])
mask = (arr >= 10) & (arr <= 20)
selected = arr[mask]
print(len(selected))
A4
B2
C5
D3
Attempts:
2 left
💡 Hint
Count how many numbers are between 10 and 20 inclusive.
🔧 Debug
advanced
2:00remaining
Identify the error in boolean masking code
What error does this code raise when trying to apply boolean masking?
NumPy
import numpy as np
arr = np.array([1, 2, 3, 4, 5])
mask = arr > 3
result = arr[mask == True]
print(result)
AIndexError: boolean index did not match indexed array along dimension 0
BTypeError: unsupported operand type(s) for ==: 'numpy.ndarray' and 'bool'
CNo error, output: [4 5]
DValueError: The truth value of an array with more than one element is ambiguous
Attempts:
2 left
💡 Hint
Check how boolean arrays compare with True in NumPy.
🚀 Application
advanced
2:30remaining
Filter and modify array elements using boolean masking
Given the array, which option correctly doubles only the elements less than 10 using boolean masking?
NumPy
import numpy as np
arr = np.array([4, 11, 7, 15, 3])
# Your code here to double elements < 10
A
arr[arr &lt; 10] = arr[arr &lt; 10] + 2
print(arr)
B
arr[arr &lt; 10] = arr[arr &lt; 10] * 2
print(arr)
C
arr[arr &lt; 10] = arr * 2
print(arr)
D
arr[arr &gt; 10] = arr[arr &gt; 10] * 2
print(arr)
Attempts:
2 left
💡 Hint
Focus on selecting elements less than 10 and multiplying them by 2.
🧠 Conceptual
expert
1:30remaining
Why is boolean masking preferred over loops in NumPy?
Which reason best explains why boolean masking is preferred over explicit Python loops for filtering NumPy arrays?
ABoolean masking uses vectorized operations that are faster and more efficient than Python loops.
BBoolean masking requires less memory than loops because it copies data.
CLoops are not supported on NumPy arrays, so boolean masking is the only option.
DBoolean masking automatically sorts the filtered data, which loops cannot do.
Attempts:
2 left
💡 Hint
Think about speed and efficiency of operations in NumPy.