📖 Scenario: You are working with a list of daily temperatures recorded over a week. You want to find which days were warmer than a certain temperature to plan outdoor activities.
🎯 Goal: Build a program that uses NumPy boolean indexing to select temperatures above a threshold.
📋 What You'll Learn
Create a NumPy array with exact temperature values
Create a threshold variable for temperature
Use boolean indexing to select temperatures above the threshold
Print the selected temperatures
💡 Why This Matters
🌍 Real World
Filtering data based on conditions is common in weather analysis, finance, and health monitoring to focus on important values.
💼 Career
Data scientists often use boolean indexing to quickly select relevant data points for analysis and visualization.
Progress0 / 4 steps
1
Create the temperature data array
Import NumPy as np and create a NumPy array called temps with these exact values: 22, 19, 25, 20, 18, 24, 21.
NumPy
Hint
Use np.array([...]) to create the array with the exact temperatures.
2
Set the temperature threshold
Create a variable called threshold and set it to the integer 20.
NumPy
Hint
Just assign the number 20 to a variable named threshold.
3
Select temperatures above the threshold using boolean indexing
Create a variable called warm_days that uses boolean indexing on temps to select only the temperatures greater than threshold.
NumPy
Hint
Use temps > threshold inside the brackets to filter the array.
4
Print the warm temperatures
Print the variable warm_days to display the temperatures above the threshold.
NumPy
Hint
Use print(warm_days) to show the filtered temperatures.
Practice
(1/5)
1. What does boolean indexing in numpy allow you to do?
easy
A. Create a new array filled with zeros
B. Change the data type of an array
C. Sort the array elements in ascending order
D. Select elements from an array using a True/False mask
Solution
Step 1: Understand boolean indexing concept
Boolean indexing uses a True/False array to pick elements from another array.
Step 2: Identify the correct operation
Only Select elements from an array using a True/False mask describes selecting elements based on True/False values.
Final Answer:
Select elements from an array using a True/False mask -> Option D
Quick Check:
Boolean indexing = Select elements [OK]
Hint: Boolean mask picks elements where True appears [OK]
Common Mistakes:
Confusing boolean indexing with sorting
Thinking it changes data types
Assuming it creates new arrays with zeros
2. Which of the following is the correct syntax to select elements greater than 5 from a numpy array arr using boolean indexing?
easy
A. arr[arr < 5]
B. arr > 5[arr]
C. arr[arr > 5]
D. arr.select(arr > 5)
Solution
Step 1: Understand boolean indexing syntax
The correct syntax is to use the array with a boolean mask inside square brackets: arr[condition].
Step 2: Check each option
arr[arr > 5] uses arr[arr > 5], which is correct. Others have wrong order or invalid methods.
Final Answer:
arr[arr > 5] -> Option C
Quick Check:
Correct syntax = arr[condition] [OK]
Hint: Put condition inside brackets after array name [OK]
Common Mistakes:
Placing condition before array name
Using invalid methods like select()
Using wrong comparison operators
3. What is the output of the following code?
import numpy as np
arr = np.array([2, 7, 4, 9, 1])
result = arr[arr % 2 == 1]
medium
A. [7 9 1]
B. [2 4]
C. [7 4 9]
D. [2 7 4 9 1]
Solution
Step 1: Understand the condition arr % 2 == 1
This condition selects elements where the remainder when divided by 2 is 1, i.e., odd numbers.
Step 2: Apply condition to array elements
Elements 7, 9, and 1 are odd, so they are selected.
Final Answer:
[7 9 1] -> Option A
Quick Check:
Odd elements = [7 9 1] [OK]
Hint: Filter with modulo to get odd numbers [OK]
Common Mistakes:
Selecting even numbers instead
Confusing modulo operator
Returning full array instead of filtered
4. The following code has a problem. What is the problem?
C. Comparison operator > is invalid for numpy arrays
D. Square brackets cannot be used for indexing
Solution
Step 1: Analyze the boolean mask creation
mask = arr > 2 creates a boolean array correctly.
Step 2: Check the indexing expression
Using mask == True is redundant since mask is already boolean. It's unnecessary and bad practice.
Step 3: Correct usage
Use arr[mask] directly without comparing mask to True.
Final Answer:
mask == True is unnecessary and redundant -> Option A
Quick Check:
Use boolean mask directly [OK]
Hint: Use mask directly, no need for '== True' [OK]
Common Mistakes:
Adding '== True' to boolean mask
Trying to convert numpy array to list for indexing
Misunderstanding comparison operators
5. Given a numpy array data = np.array([10, 15, 20, 25, 30]), how can you select elements greater than 12 and less than 28 using boolean indexing?
hard
A. data[data > 12 and data < 28]
B. data[(data > 12) & (data < 28)]
C. data[data > 12 | data < 28]
D. data[(data > 12) or (data < 28)]
Solution
Step 1: Understand combining conditions with & and parentheses
In numpy, use & for element-wise AND and wrap each condition in parentheses.
Step 2: Check each option
data[(data > 12) & (data < 28)] correctly uses & (element-wise AND) with parentheses around each condition. Using Python keywords and/or cause errors because they don't work element-wise on arrays. Using | (bitwise OR) selects elements greater than 12 or less than 28, which is wrong here.
Final Answer:
data[(data > 12) & (data < 28)] -> Option B
Quick Check:
Use & with parentheses for AND conditions [OK]
Hint: Use & with parentheses for multiple conditions [OK]
Common Mistakes:
Using 'and' or 'or' instead of & or |
Not using parentheses around conditions
Using | (OR) instead of & (AND) for filtering
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.