📖 Scenario: You are working on a simple machine learning task where you need to prepare data using NumPy arrays before feeding it into a machine learning library.Imagine you have collected data about students' study hours and their exam scores. You want to organize this data and calculate the average score for students who studied more than a certain number of hours.
🎯 Goal: Build a small program that creates a NumPy array with students' study hours and scores, sets a threshold for study hours, filters the students who studied more than the threshold, and calculates the average score of those students.
📋 What You'll Learn
Create a NumPy array with exact data for study hours and scores
Create a variable for the study hours threshold
Use NumPy to filter the array based on the threshold
Calculate the average score of filtered students
Print the average score
💡 Why This Matters
🌍 Real World
Data scientists often use NumPy to prepare and filter data before applying machine learning models. Filtering data based on conditions is a common step in data cleaning and feature selection.
💼 Career
Understanding how to manipulate data with NumPy and integrate it with machine learning workflows is essential for roles like data analyst, data scientist, and machine learning engineer.
Progress0 / 4 steps
1
Create the NumPy array with study hours and scores
Import NumPy as np and create a NumPy array called data with these exact rows: [2, 50], [5, 80], [1, 40], [7, 90], [3, 60]. Each row represents [study_hours, score].
NumPy
Hint
Use np.array() to create the array with the exact rows inside a list.
2
Set the study hours threshold
Create a variable called threshold and set it to the integer 4. This will be the minimum study hours to filter students.
NumPy
Hint
Just assign the number 4 to the variable threshold.
3
Filter students who studied more than the threshold
Use NumPy boolean indexing to create a new array called filtered_scores that contains only the scores of students whose study hours are greater than threshold. Use data[:, 0] to access study hours and data[:, 1] to access scores.
NumPy
Hint
Use data[:, 0] > threshold to get a boolean mask, then select scores with data[mask, 1].
4
Calculate and print the average score
Calculate the average of filtered_scores using np.mean() and store it in average_score. Then print average_score.
NumPy
Hint
Use np.mean(filtered_scores) to get the average, then print it.
Practice
(1/5)
1. Why do machine learning libraries often use NumPy arrays for data input?
easy
A. Because NumPy arrays can only store text data
B. Because NumPy arrays are fast and easy to manipulate for numerical data
C. Because NumPy arrays automatically train machine learning models
D. Because NumPy arrays are the only data type in Python
Solution
Step 1: Understand NumPy array properties
NumPy arrays store numerical data efficiently and support fast operations.
Step 2: Connect to machine learning needs
Machine learning needs fast numerical data processing, which NumPy arrays provide.
Final Answer:
Because NumPy arrays are fast and easy to manipulate for numerical data -> Option B
Quick Check:
NumPy arrays speed up numerical data handling = A [OK]
Hint: Remember: ML needs fast number crunching, NumPy fits well [OK]
Common Mistakes:
Thinking NumPy arrays store only text
Believing NumPy trains models automatically
Assuming Python has only one data type
2. Which of the following is the correct way to convert a Python list [1, 2, 3] into a NumPy array?
easy
A. np.toarray([1, 2, 3])
B. np.list([1, 2, 3])
C. np.convert([1, 2, 3])
D. np.array([1, 2, 3])
Solution
Step 1: Recall NumPy array creation syntax
The function to create arrays from lists is np.array().
Step 2: Check each option
Only np.array([1, 2, 3]) is valid syntax; others are not NumPy functions.
Final Answer:
np.array([1, 2, 3]) -> Option D
Quick Check:
Use np.array() to convert lists = A [OK]
Hint: Use np.array() to convert lists to arrays [OK]
Common Mistakes:
Using non-existent functions like np.list()
Confusing array creation with conversion functions
Forgetting to import NumPy as np
3. What will be the output of this code snippet?
import numpy as np
from sklearn.preprocessing import StandardScaler
X = np.array([[1, 2], [3, 4], [5, 6]])
scaler = StandardScaler()
X_scaled = scaler.fit_transform(X)
print(np.round(X_scaled, 2))
medium
A. [[-1.22 -1.22]
[ 0. 0. ]
[ 1.22 1.22]]
B. [[1 2]
[3 4]
[5 6]]
C. [[0. 0.]
[0. 0.]
[0. 0.]]
D. Error: StandardScaler not imported
Solution
Step 1: Understand StandardScaler effect
StandardScaler centers data to mean 0 and scales to unit variance.
Step 2: Calculate scaled values
For each column, mean is 3 and 4; std dev approx 1.63. Values transform to approx -1.22, 0, 1.22.
Hint: StandardScaler centers data to mean 0 and scales variance 1 [OK]
Common Mistakes:
Expecting original data output
Confusing StandardScaler with MinMaxScaler
Missing import causing runtime error
4. Identify the error in this code that uses NumPy with scikit-learn:
import numpy as np
from sklearn.linear_model import LinearRegression
X = [[1, 2], [3, 4], [5, 6]]
y = [1, 2, 3]
model = LinearRegression()
model.fit(X, y)
print(model.coef_)
medium
A. X should be a NumPy array, not a list
B. y should be a 2D array, not a list
C. LinearRegression requires data scaling before fitting
D. model.fit() is missing required parameters
Solution
Step 1: Check data types for model.fit()
scikit-learn expects NumPy arrays or similar, not plain Python lists.
Step 2: Identify the issue in X
X is a list of lists; converting to np.array is needed for proper fitting.
Final Answer:
X should be a NumPy array, not a list -> Option A
Quick Check:
Use NumPy arrays for input data = B [OK]
Hint: Always convert input data to NumPy arrays before fitting models [OK]
Common Mistakes:
Thinking y must be 2D array
Believing scaling is mandatory before fitting
Assuming fit() needs extra parameters
5. You have a dataset as a Python list of lists representing features. You want to prepare it for a machine learning model that requires normalized NumPy arrays. Which steps should you perform?
hard
A. Convert the list to a Python tuple, then normalize manually with loops
B. Directly pass the list to the model without conversion or scaling
C. Convert the list to a NumPy array, then use a scaler like MinMaxScaler to normalize
D. Use pandas DataFrame without converting to NumPy arrays
Solution
Step 1: Convert list to NumPy array
Machine learning models expect NumPy arrays for efficient computation.
Step 2: Normalize data using scaler
Use MinMaxScaler or similar to scale features between 0 and 1 for better model performance.
Final Answer:
Convert the list to a NumPy array, then use a scaler like MinMaxScaler to normalize -> Option C
Quick Check:
Convert then scale data before modeling = C [OK]
Hint: Always convert data to NumPy arrays and scale before modeling [OK]
Common Mistakes:
Passing raw lists directly to models
Using tuples which are not efficient for ML
Skipping normalization hurting model accuracy
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.