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
✗ Incorrect
Boolean indexing filters the array and returns only elements where the condition evaluates to True.
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
✗ Incorrect
The correct syntax for equality comparison is arr == 10, which creates a Boolean mask.
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])
✗ Incorrect
Only 2 is less than 5, so the filtered array contains just 2.
Can Boolean indexing be combined with multiple conditions in numpy?
ANo, only one condition is allowed
BYes, but only with or operator
CYes, using & and | operators with parentheses
DNo, Boolean indexing does not support conditions
✗ Incorrect
Multiple conditions can be combined using & (and) and | (or) with parentheses to group 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
✗ Incorrect
The Boolean mask must have the same shape as the array to correctly filter elements.
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
Step 1: Understand boolean indexing concept
Boolean indexing uses a True/False array to pick elements from another array.
Step 2: Compare with other options
Sorting, changing data type, and summing are different numpy operations, not boolean indexing.
Final Answer:
Select elements from an array based on True/False conditions -> Option A
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
Step 1: Identify correct boolean indexing syntax
In numpy, filtering uses arr[condition] where condition is a boolean array.
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.
Final Answer:
arr[arr > 5] -> Option B
Quick Check:
Correct syntax is arr[condition] [OK]
Hint: Use arr[condition] to filter arrays in numpy [OK]
This condition selects odd numbers because odd numbers have remainder 1 when divided by 2.
Step 2: Apply condition to array elements
Elements 7, 9, and 1 are odd, so they are selected.
Final Answer:
[7 9 1] -> Option C
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
Step 1: Identify boolean operator error
In numpy, element-wise logical operations require '&' instead of Python's 'and'.
Step 2: Understand why 'and' causes error
'and' expects single boolean, but arr > 15 and arr < 25 returns arrays, causing TypeError.
Final Answer:
Using 'and' instead of '&' for element-wise condition -> Option A
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
Step 1: Define conditions for filtering
We want numbers divisible by 3 (data % 3 == 0) but not divisible by 6 (data % 6 != 0).
Step 2: Combine conditions with element-wise AND
Use '&' to combine both conditions inside parentheses for correct boolean indexing.
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.