Bird
Raised Fist0
NumPydata~5 mins

Boolean indexing for filtering in NumPy - Cheat Sheet & Quick Revision

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
Recall & Review
beginner
What is Boolean indexing in numpy?
Boolean indexing is a way to select elements from a numpy array using a condition that returns True or False for each element. Only elements where the condition is True are selected.
Click to reveal answer
beginner
How do you create a Boolean mask to filter values greater than 5 in a numpy array named arr?
You write mask = arr > 5. This creates an array of True/False values where True means the element is greater than 5.
Click to reveal answer
beginner
What happens when you use a Boolean mask to index a numpy array?
The array returns only the elements where the mask is True, effectively filtering the array based on the condition.
Click to reveal answer
beginner
Example: Given arr = np.array([1, 4, 6, 8]), what does arr[arr > 5] return?
It returns array([6, 8]) because only 6 and 8 are greater than 5.
Click to reveal answer
intermediate
Can Boolean indexing be used with multi-dimensional numpy arrays?
Yes, Boolean indexing works with multi-dimensional arrays. The mask must have the same shape as the array, and it filters elements accordingly.
Click to reveal answer
What does Boolean indexing return when applied to a numpy array?
AOnly elements where the condition is False
BOnly elements where the condition is True
CAll elements regardless of condition
DThe original array unchanged
How do you create a Boolean mask for elements equal to 10 in a numpy array arr?
Amask = arr < 10
Bmask = arr = 10
Cmask = arr != 10
Dmask = arr == 10
If arr = np.array([2, 5, 7]), what is the result of arr[arr < 5]?
Aarray([2])
Barray([5, 7])
Carray([2, 5])
Darray([7])
Can Boolean indexing be combined with multiple conditions in numpy?
ANo, only one condition is allowed
BYes, but only with or operator
CYes, using &amp; and | operators with parentheses
DNo, Boolean indexing does not support conditions
What shape must a Boolean mask have to filter a numpy array?
AThe same shape as the array
BAny shape smaller than the array
COnly 1D shape
DShape does not matter
Explain how Boolean indexing works in numpy and give a simple example.
Think about how True/False values select elements.
You got /4 concepts.
    Describe how to filter a numpy array with multiple conditions using Boolean indexing.
    Remember to use parentheses around each condition.
    You got /3 concepts.

      Practice

      (1/5)
      1. What does boolean indexing in numpy allow you to do?
      easy
      A. Select elements from an array based on True/False conditions
      B. Sort an array in ascending order
      C. Change the data type of an array
      D. Calculate the sum of all elements in an array

      Solution

      1. Step 1: Understand boolean indexing concept

        Boolean indexing uses a True/False array to pick elements from another array.
      2. Step 2: Compare with other options

        Sorting, changing data type, and summing are different numpy operations, not boolean indexing.
      3. Final Answer:

        Select elements from an array based on True/False conditions -> Option A
      4. Quick Check:

        Boolean indexing = filtering by True/False [OK]
      Hint: Boolean indexing picks elements where condition is True [OK]
      Common Mistakes:
      • Confusing boolean indexing with sorting
      • Thinking it changes data types
      • Assuming it calculates sums
      2. Which of the following is the correct syntax to filter array arr for values greater than 5 using boolean indexing?
      easy
      A. arr > 5[arr]
      B. arr[arr > 5]
      C. arr.filter(arr > 5)
      D. arr[arr < 5]

      Solution

      1. Step 1: Identify correct boolean indexing syntax

        In numpy, filtering uses arr[condition] where condition is a boolean array.
      2. Step 2: Check each option

        arr[arr > 5] uses correct syntax. arr > 5[arr] is invalid syntax. arr.filter(arr > 5) is not a numpy method. arr[arr < 5] filters for less than 5, not greater.
      3. Final Answer:

        arr[arr > 5] -> Option B
      4. Quick Check:

        Correct syntax is arr[condition] [OK]
      Hint: Use arr[condition] to filter arrays in numpy [OK]
      Common Mistakes:
      • Placing condition outside brackets
      • Using non-existent filter method
      • Mixing up greater than and less than
      3. What is the output of the following code?
      import numpy as np
      arr = np.array([2, 7, 4, 9, 1])
      filtered = arr[arr % 2 == 1]
      medium
      A. [7 4 9]
      B. [2 4]
      C. [7 9 1]
      D. [2 7 4 9 1]

      Solution

      1. Step 1: Understand the condition arr % 2 == 1

        This condition selects odd numbers because odd numbers have remainder 1 when divided by 2.
      2. Step 2: Apply condition to array elements

        Elements 7, 9, and 1 are odd, so they are selected.
      3. Final Answer:

        [7 9 1] -> Option C
      4. Quick Check:

        Filter odd numbers = [7 9 1] [OK]
      Hint: Use modulo (%) to filter odd/even numbers [OK]
      Common Mistakes:
      • Selecting even numbers instead of odd
      • Including all elements without filtering
      • Misunderstanding modulo operator
      4. The following code throws an error. What is the mistake?
      import numpy as np
      arr = np.array([10, 15, 20, 25])
      filtered = arr[arr > 15 and arr < 25]
      medium
      A. Using 'and' instead of '&' for element-wise condition
      B. Missing parentheses around conditions
      C. Using 'or' instead of 'and'
      D. Array is not defined properly

      Solution

      1. Step 1: Identify boolean operator error

        In numpy, element-wise logical operations require '&' instead of Python's 'and'.
      2. Step 2: Understand why 'and' causes error

        'and' expects single boolean, but arr > 15 and arr < 25 returns arrays, causing TypeError.
      3. Final Answer:

        Using 'and' instead of '&' for element-wise condition -> Option A
      4. Quick Check:

        Use '&' for element-wise logical AND [OK]
      Hint: Use & with parentheses for multiple conditions [OK]
      Common Mistakes:
      • Using 'and' instead of '&' in numpy conditions
      • Forgetting parentheses around each condition
      • Assuming 'or' works like '|'
      5. Given a numpy array data = np.array([3, 6, 9, 12, 15, 18]), how would you filter values that are divisible by 3 but not by 6 using boolean indexing?
      hard
      A. data[(data % 3 == 0) & (data % 6 == 0)]
      B. data[(data % 3 == 0) | (data % 6 != 0)]
      C. data[(data % 3 != 0) & (data % 6 == 0)]
      D. data[(data % 3 == 0) & (data % 6 != 0)]

      Solution

      1. Step 1: Define conditions for filtering

        We want numbers divisible by 3 (data % 3 == 0) but not divisible by 6 (data % 6 != 0).
      2. Step 2: Combine conditions with element-wise AND

        Use '&' to combine both conditions inside parentheses for correct boolean indexing.
      3. Step 3: Apply combined condition to data array

        data[(data % 3 == 0) & (data % 6 != 0)] correctly applies both conditions with '&'. Others use wrong operators or conditions.
      4. Final Answer:

        data[(data % 3 == 0) & (data % 6 != 0)] -> Option D
      5. Quick Check:

        Use & and parentheses for combined conditions [OK]
      Hint: Combine conditions with & and parentheses for filtering [OK]
      Common Mistakes:
      • Using | instead of & for AND condition
      • Mixing up divisibility conditions
      • Forgetting parentheses around each condition