Bird
Raised Fist0
NumPydata~10 mins

Setting random seed for reproducibility in NumPy - Mini Project: Build & Apply

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
Setting random seed for reproducibility
📖 Scenario: Imagine you are a data scientist who needs to generate random numbers for a simulation. To make sure your results can be repeated exactly by you or others, you need to set a random seed.
🎯 Goal: You will create a numpy random number generator with a fixed seed, generate some random numbers, and print them. This ensures your random numbers are the same every time you run the code.
📋 What You'll Learn
Use numpy to generate random numbers
Set a random seed for reproducibility
Generate an array of random numbers
Print the generated random numbers
💡 Why This Matters
🌍 Real World
Setting a random seed is important in data science to ensure experiments and simulations can be repeated exactly, which helps with debugging and sharing results.
💼 Career
Data scientists and analysts often set random seeds when working with random processes to guarantee consistent results across runs and among team members.
Progress0 / 4 steps
1
Import numpy and create a random number generator
Write a line to import numpy as np. Then create a random number generator called rng using np.random.default_rng() with no seed yet.
NumPy
Hint

Use import numpy as np to import numpy. Then create rng by calling np.random.default_rng() without arguments.

2
Set a random seed for reproducibility
Modify the creation of rng to use a fixed seed of 12345 by passing it as an argument to np.random.default_rng().
NumPy
Hint

Pass the number 12345 inside the parentheses of np.random.default_rng() to set the seed.

3
Generate an array of random numbers
Use the rng random number generator to create an array called random_numbers of 5 random floats between 0 and 1 using rng.random(5).
NumPy
Hint

Call rng.random(5) to get 5 random floats and assign to random_numbers.

4
Print the generated random numbers
Write a print statement to display the random_numbers array.
NumPy
Hint

Use print(random_numbers) to show the array of random numbers.

Practice

(1/5)
1. What is the main purpose of setting a random seed in numpy?
easy
A. To increase the range of random numbers
B. To speed up random number generation
C. To generate only positive random numbers
D. To make random number results repeatable

Solution

  1. Step 1: Understand what a random seed does

    Setting a random seed fixes the starting point for random number generation.
  2. Step 2: Effect of fixed seed on results

    This means the same sequence of random numbers is produced every time the code runs.
  3. Final Answer:

    To make random number results repeatable -> Option D
  4. Quick Check:

    Random seed = repeatable results [OK]
Hint: Seed fixes randomness to get same results every run [OK]
Common Mistakes:
  • Thinking seed speeds up random generation
  • Believing seed changes number range
  • Assuming seed makes numbers positive only
2. Which of the following is the correct syntax to set a random seed to 42 in numpy?
easy
A. np.random.seed(42)
B. np.seed.random(42)
C. np.random.set_seed(42)
D. np.random.seed = 42

Solution

  1. Step 1: Recall the correct function name and usage

    The correct function to set seed in numpy is np.random.seed().
  2. Step 2: Check the argument and syntax

    The seed value is passed as an integer inside the parentheses, like np.random.seed(42).
  3. Final Answer:

    np.random.seed(42) -> Option A
  4. Quick Check:

    Correct function call = np.random.seed(42) [OK]
Hint: Use np.random.seed(number) exactly [OK]
Common Mistakes:
  • Swapping function and module names
  • Using incorrect function like set_seed
  • Assigning seed instead of calling function
3. What will be the output of the following code?
import numpy as np
np.random.seed(0)
print(np.random.randint(1, 10))
np.random.seed(0)
print(np.random.randint(1, 10))
medium
A. Different numbers both times
B. 5 followed by different number
C. 5 followed by 5
D. Error due to repeated seed setting

Solution

  1. Step 1: Understand effect of setting seed before each random call

    Setting the seed to 0 resets the random number generator to the same start point.
  2. Step 2: Predict output of np.random.randint(1, 10) after resetting seed

    Both calls produce the same random integer because the seed is reset before each call.
  3. Final Answer:

    5 followed by 5 -> Option C
  4. Quick Check:

    Same seed = same random number [OK]
Hint: Resetting seed repeats same random number [OK]
Common Mistakes:
  • Assuming different numbers after resetting seed
  • Thinking repeated seed causes error
  • Ignoring seed reset effect
4. Identify the error in this code snippet that tries to set a random seed:
import numpy as np
np.random.seed = 123
print(np.random.rand())
medium
A. Missing import statement
B. Seed is assigned instead of called as a function
C. Seed value must be a float, not integer
D. np.random.rand() is incorrect function

Solution

  1. Step 1: Check how seed is set

    The code assigns 123 to np.random.seed instead of calling it as a function.
  2. Step 2: Understand consequence of assignment

    This overwrites the seed function with an integer, causing errors on later random calls.
  3. Final Answer:

    Seed is assigned instead of called as a function -> Option B
  4. Quick Check:

    Use np.random.seed(123), not assignment [OK]
Hint: Call seed() as function, don't assign it [OK]
Common Mistakes:
  • Assigning seed instead of calling
  • Using wrong random function
  • Ignoring import statement
5. You want to generate a reproducible array of 3 random floats between 0 and 1 using numpy. Which code snippet achieves this correctly?
hard
A. np.random.seed(7) arr = np.random.rand(3) print(arr)
B. np.random.seed = 7 arr = np.random.rand(3) print(arr)
C. np.random.set_seed(7) arr = np.random.rand(3) print(arr)
D. np.random.seed(7) arr = np.random.randint(3) print(arr)

Solution

  1. Step 1: Set the random seed correctly

    Use np.random.seed(7) to fix the random sequence.
  2. Step 2: Generate 3 random floats between 0 and 1

    np.random.rand(3) creates an array of 3 floats in [0,1).
  3. Final Answer:

    np.random.seed(7) arr = np.random.rand(3) print(arr) -> Option A
  4. Quick Check:

    Correct seed + rand(3) = reproducible floats [OK]
Hint: Seed with np.random.seed(), use np.random.rand(3) [OK]
Common Mistakes:
  • Assigning seed instead of calling
  • Using non-existent set_seed function
  • Using randint instead of rand for floats