📖 Scenario: Imagine you have a list of daily temperatures for a week. You want to pick specific days to check the temperatures, but not in order. This is like picking favorite days to remember.
🎯 Goal: You will create a NumPy array of temperatures, then use fancy indexing with an integer array to select temperatures from specific days.
📋 What You'll Learn
Create a NumPy array called temps with these exact values: [22, 19, 24, 21, 20, 23, 18]
Create a NumPy array called days with these exact indices: [0, 3, 5]
Use fancy indexing with days to select temperatures from temps and store in selected_temps
Print the selected_temps array
💡 Why This Matters
🌍 Real World
Fancy indexing helps quickly pick specific data points from large datasets, like selecting certain days' temperatures from a weather dataset.
💼 Career
Data scientists often use fancy indexing to filter and analyze subsets of data efficiently without loops.
Progress0 / 4 steps
1
Create the temperature array
Import NumPy as np and create a NumPy array called temps with these exact values: [22, 19, 24, 21, 20, 23, 18]
NumPy
Hint
Use import numpy as np first. Then create temps using np.array() with the exact list of numbers.
2
Create the days index array
Create a NumPy array called days with these exact indices: [0, 3, 5]
NumPy
Hint
Use np.array() to create days with the exact indices.
3
Select temperatures using fancy indexing
Use fancy indexing with the days array to select temperatures from temps and store the result in a variable called selected_temps
NumPy
Hint
Use temps[days] to pick the temperatures at the indices in days.
4
Print the selected temperatures
Print the selected_temps array to see the temperatures from the chosen days
NumPy
Hint
Use print(selected_temps) to display the selected temperatures.
Practice
(1/5)
1. What does fancy indexing with integer arrays in NumPy allow you to do?
easy
A. Create a new array filled with zeros
B. Sort an array in ascending order
C. Select multiple elements from an array using a list of positions
D. Change the data type of an array
Solution
Step 1: Understand fancy indexing
Fancy indexing uses a list or array of integers to pick elements by their positions.
Step 2: Identify the correct operation
It selects multiple elements from the original array based on given indices.
Final Answer:
Select multiple elements from an array using a list of positions -> Option C
Quick Check:
Fancy indexing = select elements by positions [OK]
Hint: Fancy indexing picks elements by position list [OK]
Common Mistakes:
Confusing fancy indexing with sorting
Thinking it changes data type
Assuming it creates arrays of zeros
2. Which of the following is the correct syntax to select elements at positions 0, 2, and 4 from a NumPy array arr using fancy indexing?
easy
A. arr{0, 2, 4}
B. arr(0, 2, 4)
C. arr[0:2:4]
D. arr[[0, 2, 4]]
Solution
Step 1: Recall fancy indexing syntax
Fancy indexing uses double square brackets with a list or array of indices inside.
Step 2: Match syntax to options
Only arr[[0, 2, 4]] uses correct double brackets and list format.
Final Answer:
arr[[0, 2, 4]] -> Option D
Quick Check:
Double brackets with list = correct fancy indexing [OK]
Hint: Use double brackets with list for fancy indexing [OK]
Common Mistakes:
Using parentheses instead of brackets
Using curly braces which are invalid
Using slicing syntax incorrectly
3. What is the output of the following code?
import numpy as np
arr = np.array([10, 20, 30, 40, 50])
indices = np.array([1, 3, 4])
result = arr[indices]
print(result)
medium
A. [20 40 50]
B. [10 30 40]
C. [20 30 40]
D. [50 40 20]
Solution
Step 1: Understand the array and indices
Original array is [10, 20, 30, 40, 50]. Indices are [1, 3, 4].
Step 2: Select elements at given indices
Elements at positions 1, 3, 4 are 20, 40, 50 respectively.
Final Answer:
[20 40 50] -> Option A
Quick Check:
arr[1,3,4] = [20 40 50] [OK]
Hint: Match indices to array positions to get output [OK]
Common Mistakes:
Mixing up indices and values
Using wrong positions from array
Confusing slicing with fancy indexing
4. Identify the error in the following code snippet:
import numpy as np
arr = np.array([5, 10, 15, 20])
indices = [1, 4]
print(arr[indices])
medium
A. IndexError because index 4 is out of bounds
B. SyntaxError due to wrong brackets
C. TypeError because indices is a list
D. No error, prints [10 20]
Solution
Step 1: Check array size and indices
Array length is 4, valid indices are 0 to 3. Index 4 is invalid.
Step 2: Understand error type
Accessing index 4 causes IndexError: index out of bounds.
Final Answer:
IndexError because index 4 is out of bounds -> Option A
Quick Check:
Index 4 invalid for length 4 array [OK]
Hint: Check if all indices are within array length [OK]
Common Mistakes:
Assuming list indices are always valid
Confusing syntax errors with index errors
Thinking list indices cause type errors
5. Given a 2D NumPy array arr = np.array([[1,2,3],[4,5,6],[7,8,9]]), how can you use fancy indexing to select elements at positions (0,2), (1,0), and (2,1) and create a new 1D array with these values?
hard
A. arr[[0,2,1], [2,1,0]]
B. arr[[0,1,2], [2,0,1]]
C. arr[[2,1,0], [0,1,2]]
D. arr[[0,1,2]][[2,0,1]]
Solution
Step 1: Understand 2D fancy indexing
To select elements at (row, col) positions, use two index arrays: one for rows, one for columns.
Step 2: Match given positions to index arrays
Positions are (0,2), (1,0), (2,1), so rows = [0,1,2], cols = [2,0,1].
Step 3: Use fancy indexing syntax
Use arr[[0,1,2], [2,0,1]] to get elements [3,4,8].
Final Answer:
arr[[0,1,2], [2,0,1]] -> Option B
Quick Check:
Rows and cols arrays match positions [OK]
Hint: Use two index arrays: rows and columns [OK]
Common Mistakes:
Mixing row and column indices order
Using chained indexing instead of fancy indexing
Using wrong index arrays for positions
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.