Lessons
NumPy Tutorial
NumPy Random in Python
What are Random Numbers?
Random numbers are values generated without any predictable pattern. They are widely used in simulations, cryptography, machine learning, and data analysis.
Pseudo-Random vs. True Random Numbers
- True Random Numbers: These are generated using physical processes like radioactive decay or atmospheric noise. Since they rely on external factors, they are truly unpredictable.
- Pseudo-Random Numbers: These are generated using mathematical algorithms, which makes them deterministic. Although they appear random, they are reproducible if the initial seed value is known.
In programming, we typically use pseudo-random numbers as they are efficient and sufficient for most applications.
How to Generate Random Numbers with NumPy?
NumPy provides the numpy.random
module, which contains various functions to generate random numbers efficiently.
1. Random Sampling (numpy.random)
Syntax:
python
1 2
import numpy as np np.random.random(size=None)
Parameters:
size
(optional): Specifies the shape of the output array.
Returns:
- A single float or an array of random values between
0.0
and1.0
.
Example:
python
1 2 3
np.random.random() # Single random float np.random.random(5) # 1D array with 5 random values np.random.random((2,3)) # 2D array of shape (2,3)
2. Random Choice (numpy.random.choice)
Syntax:
np.random.choice(a, size=None, replace=True, p=None)
Parameters:
a
: Array or integer range from which to sample.size
(optional): Number of elements to pick.replace
: IfTrue
, elements can be selected multiple times.p
: Probabilities associated with each element.
Returns:
- A single value or an array of randomly selected elements.
Example:
python
1 2
np.random.choice([1, 2, 3, 4, 5]) # Pick one random value np.random.choice([1, 2, 3, 4, 5], size=3) # Pick 3 random values
3. Random Integers (numpy.random.randint)
Syntax:
np.random.randint(low, high=None, size=None, dtype=int)
Parameters:
low
: Lowest integer to be drawn.high
(optional): Upper bound (exclusive).size
: Output shape.dtype
: Data type of the output.
Returns:
- A single integer or an array of random integers.
Example:
python
1 2
np.random.randint(1, 10) # Random integer between 1 and 9 np.random.randint(1, 10, size=5) # 1D array of 5 random integers
4. Generating Random Float Values
Syntax:
np.random.uniform(low=0.0, high=1.0, size=None)
Parameters:
low
: Lower bound.high
: Upper bound.size
: Output shape.
Returns:
- A single float or an array of uniformly distributed random values.
Example:
python
1 2
np.random.uniform(2.0, 5.0) # Random float between 2.0 and 5.0 np.random.uniform(0, 10, size=3) # 1D array with 3 random floats
5. Generating a Random Array
Syntax:
np.random.rand(d0, d1, ..., dn)
Parameters:
d0, d1, ..., dn
: Shape of the output array.
Returns:
- A multi-dimensional array of random values between
0.0
and1.0
.
Example:
python
1
np.random.rand(2, 3) # 2x3 array with random values
Summary
NumPy provides efficient ways to generate random numbers for different use cases. Here’s a quick recap:
random.random()
- Generates random float(s) between0.0
and1.0
.random.choice()
- Selects random elements from an array.random.randint()
- Generates random integers within a range.random.uniform()
- Generates random floats in a specified range.random.rand()
- Generates a random array.