Random Arrays
It is often the case that we need to generate a random number or an array of random numbers. Luckily, NumPy has a module named random
specifically for this purpose.
The two most commonly used functions of the random
module are:
rand()
;randint()
.
rand()
The numpy.random.rand()
function is used to generate either a random float
number or an array of random floats from a uniform distribution over [0, 1).
Note
Square brackets [ or ] in interval notation indicate that the value is included, while parentheses ( or ) indicate that the value is excluded. For example, [0, 1) means the interval includes 0 but not 1. Don't confuse this mathematical notation with brackets used in code — they serve different purposes.
Its only possible arguments are the dimensions of the array. If no argument is passed, rand()
generates a random float
number (scalar).
12345678910import numpy as np # Generating a random number random_number = np.random.rand() print(random_number) # Generating a random 1D array with 5 elements random_array = np.random.rand(5) print(random_array) # Generating a random 2D array (matrix) of shape 4x3 random_matrix = np.random.rand(4, 3) print(random_matrix)
Note
Dimensions in the
rand()
function should be specified as separate integer parameters, not as a tuple of integers. For example,rand(4, 3)
is correct, whilerand((4, 3))
is incorrect.
randint()
The numpy.random.randint
function is used to generate either a random integer or an array of random integers from a
discrete uniform distribution within a specified interval.
Its three most important parameters are low
(the only required parameter), high
, and size
. The interval is [low, high)
(from low
inclusive to high
exclusive). However, if high
is not specified, then the interval is [0, low)
.
12345678910111213import numpy as np # Generating a random integer from 0 to 3 exclusive random_integer = np.random.randint(3) print(random_integer) # Generating a 1D array of random integers in [0, 5) with 4 elements random_int_array = np.random.randint(5, size=4) print(random_int_array) # Generating a 1D array of random integers in [2, 5) with 4 elements random_int_array_2 = np.random.randint(2, 5, size=4) print(random_int_array_2) # Generating a random 2D array of random integers in [1, 6) of shape 4x2 random_int_matrix = np.random.randint(1, 6, size=(4, 2)) print(random_int_matrix)
Note
Unlike
rand()
, we specify the dimensions of the array via a single parametersize
, passing either an integer or a tuple of integers.
Swipe to start coding
- Create a 1D array of random floats from a uniform distribution in [0, 1) with 4 elements for
random_floats_array
. - Create a 2D array of random floats from a uniform distribution in [0, 1) with a shape of 3x2 for
random_floats_matrix
. - Use the correct function to create a 2D array of random integers for
random_integers_matrix
. - Set the interval to [10, 21) (from
10
to21
exclusive) by specifying the first two arguments of the function. - Set the shape of the
random_integers_matrix
to 3x2 by specifying the third keyword argument of the function.
Solution
Thanks for your feedback!
single
Ask AI
Ask AI
Ask anything or try one of the suggested questions to begin our chat