Bird
Raised Fist0
NumPydata~15 mins

Why boolean masking matters in NumPy - See It in Action

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
Why Boolean Masking Matters
📖 Scenario: Imagine you have a list of temperatures recorded every day for a week. You want to find which days were hot, meaning the temperature was above 30 degrees. Instead of checking each day one by one, you can use a smart way called boolean masking to quickly find those hot days.
🎯 Goal: You will create a list of temperatures, set a threshold for hot days, use boolean masking to find which days are hot, and then print the hot days' temperatures.
📋 What You'll Learn
Create a numpy array called temperatures with values [22, 35, 27, 40, 30, 33, 25]
Create a variable called hot_threshold and set it to 30
Use boolean masking to create a variable called hot_days that contains temperatures above hot_threshold
Print the hot_days array
💡 Why This Matters
🌍 Real World
Boolean masking helps quickly filter data based on conditions, like finding hot days in weather data or selecting customers with high sales.
💼 Career
Data scientists use boolean masking to clean and analyze data efficiently, making it easier to find important patterns and insights.
Progress0 / 4 steps
1
Create the temperatures array
Create a numpy array called temperatures with these exact values: [22, 35, 27, 40, 30, 33, 25]
NumPy
Hint

Use np.array([...]) to create the array with the exact values.

2
Set the hot day threshold
Create a variable called hot_threshold and set it to 30
NumPy
Hint

Just assign the number 30 to the variable hot_threshold.

3
Apply boolean masking to find hot days
Use boolean masking to create a variable called hot_days that contains only the temperatures from temperatures that are greater than hot_threshold
NumPy
Hint

Use temperatures > hot_threshold inside the brackets to select only hot days.

4
Print the hot days temperatures
Print the variable hot_days to show the temperatures above the threshold
NumPy
Hint

Use print(hot_days) to display the result.

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