Bird
Raised Fist0
NumPydata~20 mins

Setting random seed for reproducibility in NumPy - Practice Problems & Coding Challenges

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
Challenge - 5 Problems
🎖️
Seed Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
2:00remaining
Output of numpy random with fixed seed
What is the output of the following code snippet?
NumPy
import numpy as np
np.random.seed(42)
result = np.random.randint(0, 10, size=5)
print(result.tolist())
A]6 ,4 ,7 ,3 ,6[
B[6, 3, 7, 4, 6]
C6, 3, 7, 4, 6]
D[6, 3, 7, 4, 6
Attempts:
2 left
💡 Hint
Setting the seed fixes the random numbers generated by numpy.
❓ data_output
intermediate
2:00remaining
Number of unique values with and without seed
Consider the following code. How many unique values are in the array 'a' after running it?
NumPy
import numpy as np
np.random.seed(0)
a = np.random.choice([1, 2, 3, 4, 5], size=10, replace=True)
unique_count = len(np.unique(a))
print(unique_count)
A2
B4
C5
D3
Attempts:
2 left
💡 Hint
The seed fixes the random choices, so the unique count is consistent.
🔧 Debug
advanced
2:00remaining
Identify the error in reproducibility code
What error will this code raise when run?
NumPy
import numpy as np
np.random.seed(123)
result = np.random.randint(0, 5, size='10')
print(result)
ANo error, prints an array of 10 integers
BValueError: size must be positive
CSyntaxError: invalid syntax
DTypeError: 'str' object cannot be interpreted as an integer
Attempts:
2 left
💡 Hint
Check the type of the 'size' argument in randint.
🚀 Application
advanced
2:00remaining
Reproducible random sampling from a DataFrame
You have a DataFrame with 100 rows. You want to randomly select 10 rows reproducibly. Which code snippet achieves this?
Adf.sample(n=10, random_state=42)
Bdf.sample(n=10).set_seed(42)
Cdf.sample(n=10, seed=42)
Ddf.sample(n=10, random_seed=42)
Attempts:
2 left
💡 Hint
Check the correct parameter name for reproducible sampling in pandas.
🧠 Conceptual
expert
2:00remaining
Effect of setting seed on multiple random generators
If you set np.random.seed(0) and then use both numpy and Python's built-in random module to generate random numbers, which statement is true?
ASetting np.random.seed(0) only affects numpy's random functions, not Python's random module.
BSetting np.random.seed(0) also fixes the output of Python's random module.
CPython's random module uses numpy's seed internally, so both are fixed.
DNeither numpy nor Python's random module are affected by np.random.seed(0).
Attempts:
2 left
💡 Hint
Consider if numpy and Python's random share the same seed state.

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