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
| Function | Description |
|---|---|
| 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.