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 random generation matters
📖 Scenario: Imagine you are a data scientist working with a large dataset of customer ages. You want to understand how random sampling can help you estimate the average age without looking at the entire dataset.
🎯 Goal: You will create a dataset of ages, set a sample size, randomly select a sample, and then calculate the average age of that sample to see how it compares to the whole dataset.
📋 What You'll Learn
Create a numpy array called ages with these exact values: 22, 25, 47, 35, 46, 52, 23, 43, 36, 44
Create a variable called sample_size and set it to 4
Use numpy.random.choice to randomly select sample_size ages from ages and store in sample
Calculate the average of sample and store it in sample_average
Print the sample array and the sample_average value
💡 Why This Matters
🌍 Real World
Random sampling is used in surveys, polls, and experiments to estimate results without checking every individual.
💼 Career
Data scientists use random sampling to analyze big data efficiently and make predictions or decisions based on samples.
Progress0 / 4 steps
1
Create the dataset of ages
Create a numpy array called ages with these exact values: 22, 25, 47, 35, 46, 52, 23, 43, 36, 44
NumPy
Hint
Use np.array to create the array with the exact values.
2
Set the sample size
Create a variable called sample_size and set it to 4
NumPy
Hint
Just assign the number 4 to the variable sample_size.
3
Randomly select a sample
Use numpy.random.choice to randomly select sample_size ages from ages and store the result in sample
NumPy
Hint
Use np.random.choice with size=sample_size and replace=False to avoid duplicates.
4
Calculate and print the sample average
Calculate the average of sample using np.mean and store it in sample_average. Then print both sample and sample_average
NumPy
Hint
Use np.mean(sample) to get the average. Then print both variables.
Practice
(1/5)
1. Why is random number generation important in data science?
easy
A. It helps create unpredictable data for testing and simulations.
B. It always produces the same output for every run.
C. It removes the need for data cleaning.
D. It guarantees perfect model accuracy.
Solution
Step 1: Understand the role of randomness
Random generation creates data that is not predictable, which is useful for testing and simulations.
Step 2: Evaluate the options
Only 'It helps create unpredictable data for testing and simulations.' correctly states the importance of random generation. Options A, B, and D are incorrect because random generation does not remove the need for data cleaning, does not always produce the same output, and does not guarantee perfect accuracy.
Final Answer:
It helps create unpredictable data for testing and simulations. -> Option A
Quick Check:
Random generation importance = unpredictable data [OK]
Hint: Random means unpredictable data for testing [OK]
Common Mistakes:
Thinking random data is always the same
Assuming random data fixes all errors
Believing random data guarantees perfect results
2. Which of the following is the correct way to generate 5 random numbers between 0 and 1 using NumPy?
easy
A. np.random.randn(5)
B. np.random.rand(5)
C. np.random.randint(0, 1, 5)
D. np.random.choice(5)
Solution
Step 1: Review NumPy random functions
np.random.rand(5) generates 5 random floats between 0 and 1.
Step 2: Check other options
np.random.randn(5) generates samples from the standard normal distribution (not uniform [0,1)); np.random.randint(0, 1, 5) returns zeros only; np.random.choice(5) picks one number from 0 to 4.
Final Answer:
np.random.rand(5) -> Option B
Quick Check:
Correct syntax for 5 random floats = np.random.rand(5) [OK]
Hint: Use np.random.rand(n) for n floats 0 to 1 [OK]
Common Mistakes:
Using randint with 0 and 1 returns only zeros
Using choice without specifying size returns one value
Confusing randn with rand
3. What will be the output of the following code?
import numpy as np
np.random.seed(0)
print(np.random.rand(3))
medium
A. [0.5488135 0.71518937 0.60276338]
B. [0.5488135 0.60276338 0.71518937]
C. [0.37454012 0.95071431 0.73199394]
D. [0.71518937 0.60276338 0.5488135 ]
Solution
Step 1: Understand seed effect
Setting np.random.seed(0) fixes the random numbers to a known sequence.
Step 2: Check known output for seed 0
For seed 0, np.random.rand(3) produces [0.5488135 0.71518937 0.60276338]. The other options show different sequences or orders.
4. The following code is intended to generate 4 random integers between 1 and 10, but it raises an error. What is the problem?
import numpy as np
np.random.randint(1, 10, size=4, seed=42)
medium
A. The 'seed' argument is not valid in randint function.
B. The 'size' argument should be a tuple, not an integer.
C. The range 1 to 10 is invalid for randint.
D. The function randint does not exist in numpy.
Solution
Step 1: Check randint parameters
NumPy's randint does not accept a seed parameter directly.
Step 2: Understand how to set seed
Seed must be set using np.random.seed(42) before calling randint.
Final Answer:
The 'seed' argument is not valid in randint function. -> Option A
Quick Check:
Seed set separately, not in randint [OK]
Hint: Set seed with np.random.seed(), not in randint [OK]
Common Mistakes:
Passing seed inside randint
Using wrong size type
Thinking randint is missing
5. You want to simulate rolling a fair six-sided die 1000 times using NumPy. Which code snippet correctly generates this data?
hard
A. np.random.rand(1000) * 6 + 1
B. np.random.randint(0, 6, size=1000)
C. np.random.choice(6, size=1000)
D. np.random.randint(1, 7, size=1000)
Solution
Step 1: Understand die roll range
A fair six-sided die has values 1 through 6 inclusive.
Step 2: Check code options
np.random.randint(1, 7, size=1000) uses randint(1,7) which includes 1 and excludes 7, so values 1 to 6 are generated correctly. np.random.rand(1000) * 6 + 1 generates floats, not integers. np.random.choice(6, size=1000) picks from default [0,1,2,3,4,5]. np.random.randint(0, 6, size=1000) generates 0 to 5, which is incorrect.