0
0
NumpyHow-ToBeginner ยท 3 min read

How to Use np.random.seed in NumPy for Reproducible Results

Use np.random.seed(seed_value) to set the starting point for NumPy's random number generator. This makes your random numbers repeatable, so you get the same results every time you run your code with that seed.
๐Ÿ“

Syntax

The syntax to set the random seed in NumPy is simple:

  • np.random.seed(seed_value): Sets the seed for NumPy's random number generator.
  • seed_value: An integer that initializes the random number generator.

Setting the seed ensures that the sequence of random numbers generated is the same every time you run your code.

python
np.random.seed(seed_value)
๐Ÿ’ป

Example

This example shows how setting the seed makes random numbers repeatable:

python
import numpy as np

np.random.seed(42)  # Set seed to 42
random_numbers1 = np.random.rand(3)  # Generate 3 random numbers

np.random.seed(42)  # Reset seed to 42
random_numbers2 = np.random.rand(3)  # Generate 3 random numbers again

print("First set:", random_numbers1)
print("Second set:", random_numbers2)
print("Are both sets equal?", np.array_equal(random_numbers1, random_numbers2))
Output
First set: [0.37454012 0.95071431 0.73199394] Second set: [0.37454012 0.95071431 0.73199394] Are both sets equal? True
โš ๏ธ

Common Pitfalls

Common mistakes when using np.random.seed include:

  • Not setting the seed before generating random numbers, which leads to different results each run.
  • Setting the seed only once at the start of a program but expecting different parts to produce different random sequences.
  • Using non-integer or invalid seed values, which will cause errors.

Always set the seed right before the random operations if you want reproducibility in that part.

python
import numpy as np

# Wrong: seed set after generating random numbers
random_numbers_wrong = np.random.rand(3)
np.random.seed(123)

# Right: seed set before generating random numbers
np.random.seed(123)
random_numbers_right = np.random.rand(3)

print("Wrong approach:", random_numbers_wrong)
print("Right approach:", random_numbers_right)
Output
Wrong approach: [0.37454012 0.95071431 0.73199394] Right approach: [0.69646919 0.28613933 0.22685145]
๐Ÿ“Š

Quick Reference

FunctionDescription
np.random.seed(seed_value)Set the seed for NumPy's random number generator
np.random.rand(n)Generate n random floats between 0 and 1
np.random.randint(low, high)Generate random integers between low (inclusive) and high (exclusive)
โœ…

Key Takeaways

Use np.random.seed with an integer to get repeatable random numbers.
Set the seed before generating random numbers to ensure reproducibility.
The same seed always produces the same sequence of random numbers.
Avoid setting the seed multiple times unless you want to restart the sequence.
Use valid integer seeds to prevent errors.