Bird
Raised Fist0
NumPydata~10 mins

Why boolean masking matters in NumPy - Test Your Understanding

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 create a boolean mask that selects values greater than 5.

NumPy
import numpy as np
arr = np.array([3, 7, 2, 9, 5])
mask = arr [1] 5
print(mask)
Drag options to blanks, or click blank then click option'
A<
B==
C>
D!=
Attempts:
3 left
💡 Hint
Common Mistakes
Using '==' instead of '>' results in a mask selecting only values equal to 5.
Using '<' selects values less than 5, which is the opposite of what we want.
2fill in blank
medium

Complete the code to use the boolean mask to select values greater than 5 from the array.

NumPy
import numpy as np
arr = np.array([3, 7, 2, 9, 5])
mask = arr > 5
selected = arr[1]mask]
print(selected)
Drag options to blanks, or click blank then click option'
A[
B+
C*
D-
Attempts:
3 left
💡 Hint
Common Mistakes
Using '+' or '*' tries to add or multiply, which is incorrect for masking.
Forgetting brackets causes a syntax error.
3fill in blank
hard

Fix the error in the code to correctly create a mask for values less than or equal to 4.

NumPy
import numpy as np
arr = np.array([1, 4, 6, 3, 8])
mask = arr [1] 4
print(mask)
Drag options to blanks, or click blank then click option'
A<
B<=
C==
D>=
Attempts:
3 left
💡 Hint
Common Mistakes
Using '<' excludes values equal to 4.
Using '>=' selects values greater than or equal to 4, which is wrong.
4fill in blank
hard

Complete the code to create a dictionary of words and their lengths, but only for words longer than 3 letters.

NumPy
words = ['cat', 'elephant', 'dog', 'lion']
lengths = {word: len(word) for word in words if len(word) [1] 3}
print(lengths)
Drag options to blanks, or click blank then click option'
A:
B>
C<
D=
Attempts:
3 left
💡 Hint
Common Mistakes
Using '=' instead of ':' causes syntax errors in dictionary comprehension.
Using '<' filters words shorter than 3, opposite of requirement.
5fill in blank
hard

Fill all three blanks to create a dictionary with uppercase words as keys and their lengths as values, only for words with length greater than 3.

NumPy
words = ['apple', 'bat', 'carrot', 'dog']
result = [1]: [2] for w in words if len(w) [3] 3
print(result)
Drag options to blanks, or click blank then click option'
Aw.upper()
Blen(w)
C>
Dw.lower()
Attempts:
3 left
💡 Hint
Common Mistakes
Using w.lower() instead of uppercase keys.
Using '<' instead of '>' filters wrong words.

Practice

(1/5)
1. What is the main purpose of boolean masking in numpy?
easy
A. To sort an array in ascending order
B. To select elements from an array based on True/False conditions
C. To change the data type of an array
D. To create a new array filled with zeros

Solution

  1. Step 1: Understand boolean masking concept

    Boolean masking uses a True/False array to pick elements from another array.
  2. Step 2: Identify the main use

    This helps select only the elements where the mask is True, filtering data easily.
  3. Final Answer:

    To select elements from an array based on True/False conditions -> Option B
  4. Quick Check:

    Boolean mask = select elements [OK]
Hint: Boolean mask picks elements where condition is True [OK]
Common Mistakes:
  • Thinking it sorts the array
  • Confusing masking with data type change
  • Assuming it fills arrays with zeros
2. Which of the following is the correct syntax to create a boolean mask for array arr to select values greater than 5?
easy
A. mask = arr > 5
B. mask = arr = 5
C. mask = arr < 5
D. mask = arr == 5

Solution

  1. Step 1: Understand comparison operators

    To select values greater than 5, use the greater than operator: >.
  2. Step 2: Check syntax correctness

    mask = arr > 5 creates a boolean array where True means element > 5.
  3. Final Answer:

    mask = arr > 5 -> Option A
  4. Quick Check:

    Use > for greater than [OK]
Hint: Use > operator to create mask for values greater than number [OK]
Common Mistakes:
  • Using single equals (=) instead of comparison (>)
  • Using < instead of >
  • Using == which checks equality, not greater than
3. Given the code:
import numpy as np
arr = np.array([2, 7, 4, 9, 1])
mask = arr > 4
result = arr[mask]

What is the value of result?
medium
A. [2, 7, 9]
B. [2, 4, 1]
C. [7, 4, 9]
D. [7, 9]

Solution

  1. Step 1: Create boolean mask for elements > 4

    Elements greater than 4 are 7 and 9, so mask is [False, True, False, True, False].
  2. Step 2: Apply mask to array

    Using arr[mask] selects elements where mask is True: [7, 9].
  3. Final Answer:

    [7, 9] -> Option D
  4. Quick Check:

    Mask picks elements > 4 [OK]
Hint: Mask True picks elements, False skips [OK]
Common Mistakes:
  • Including elements not > 4
  • Confusing mask with index positions
  • Selecting elements less than or equal to 4
4. What is wrong with this code snippet?
import numpy as np
arr = np.array([1, 3, 5, 7])
mask = arr > 4
print(arr[mask])

It raises an error. Why?
medium
A. The mask is created correctly; no error occurs
B. The mask uses assignment (=) instead of comparison (>)
C. The array contains non-numeric values causing error
D. The mask array has different length than arr

Solution

  1. Step 1: Check mask creation

    The mask arr > 4 creates a boolean array of same length as arr without error.
  2. Step 2: Check indexing with mask

    Using arr[mask] selects elements > 4 without error.
  3. Final Answer:

    The mask is created correctly; no error occurs -> Option A
  4. Quick Check:

    Correct mask syntax means no error [OK]
Hint: Correct mask syntax means no error [OK]
Common Mistakes:
  • Confusing assignment (=) with comparison (>)
  • Assuming mask length mismatch error
  • Thinking non-numeric values cause error here
5. You have a numpy array data = np.array([10, 0, 5, -3, 8]). You want to select only positive numbers excluding zero using boolean masking. Which code correctly achieves this?
hard
A. mask = data >= 0 result = data[mask]
B. mask = data != 0 result = data[mask]
C. mask = data > 0 result = data[mask]
D. mask = data < 0 result = data[mask]

Solution

  1. Step 1: Define condition for positive numbers excluding zero

    Positive numbers are greater than zero, so condition is data > 0.
  2. Step 2: Apply mask and select elements

    Using data[data > 0] selects 10, 5, and 8, excluding zero and negatives.
  3. Final Answer:

    mask = data > 0 result = data[mask] -> Option C
  4. Quick Check:

    Use > 0 to exclude zero and negatives [OK]
Hint: Use > 0 to select positive numbers excluding zero [OK]
Common Mistakes:
  • Using >= 0 includes zero
  • Using != 0 includes negatives
  • Using < 0 selects negatives, not positives