Numpy random.choice() Function



The Numpy random.choice() function generates a random sample from a given one-dimensional array or list. It allows sampling elements randomly, either with or without replacement, from the specified array or sequence. This function is commonly used in simulations, random data generation, and random sampling tasks.

The numpy.random.choice() function raises a ValueError, if the probability array p does not sum to 1.

Syntax

Following is the syntax of the Numpy random.choice() function −

numpy.random.choice(N, size=None, replace=True, p=None)

Parameters

Following are the parameters of the Numpy random.choice() function −

  • N: 1D array-like or int. If an integer, it selects from range(N).
  • size (optional): The output shape. If None, a single value is returned. If an integer, a 1D array is returned. If a tuple, a multidimensional array is returned.
  • replace (optional): Boolean. If True (default), sample with replacement; if False, sample without replacement.
  • p (optional): 1D array-like of probabilities associated with each element in N. If not provided, all elements are assumed to have equal probability.

Return Value

The function returns a random sample from the given 1D array or an integer value from range(N).

Example

Following is a basic example to randomly select a single element from a list using Numpy random.choice()

import numpy as np
array = [10, 20, 30, 40, 50]
random_choice = np.random.choice(array)
print("Random Choice:", random_choice)

Output

Following is the output of the above code −

Random Choice: 3

Example : Random Selection with Specified Size

Using the numpy.random.choice() function, we can also select multiple random elements by specifying the size parameter. It can be a single element or tuple. When we mention a size in a tuple, it will result multidimensional array.

Size as Integer value

In the following example, we have generated a numpy array with 3 random elements from the given array by assigning size to 3 in the numpy.random.choice() function −

import numpy as np
array = [10, 20, 30, 40, 50]
random_choices = np.random.choice(array, size=3)
print("Random Choices:", random_choices)

Output

Following is the output of the above code −

Random Choices: [30 20 40]

Size as Tuple

Here, we have generated a 2D numpy array with random elements from the given array by assigning a tuple as a size in the numpy.random.choice() function −

import numpy as np
array = [17, 42, 80, 79, 24]
Numpy_Array= np.random.choice(array, size=(3,4))
print("Numpy Array - \n", Numpy_Array)
print(type(Numpy_Array))

Output

Following is the output of the above code −

Numpy Array - 
 [[42 79 79 17]
 [17 80 79 79]
 [42 24 79 79]]
<class 'numpy.ndarray'>

Example : Selection Without Replacement

When we need a random NumPy array with all unique elements, we need to set the replace parameter to False.

In the following example, we have selected 4 unique random elements from the array by setting replace parameters to False

import numpy as np
array = [15, 82, 63, 54, 25]
Numpy_Array = np.random.choice(array, size=3, replace=False)
print("Numpy Array :", Numpy_Array)
print(type(Numpy_Array))

Output

Following is the output of the above code −

Numpy Array : [15 82 54]
<class 'numpy.ndarray'>

Example : Random Selection with Probabilities

We can control the occurence of each element in the array by specifying a probability distribution with the p parameter. The p parameter should be a 1D array of probabilities associated with each element in the input array.

In the following example, we have assigned higher probabilities to some elements using probability distribution −

import numpy as np
array = [41, 82, 13, 24, 65]
probabilities = [0.1, 0.2, 0.3, 0.2, 0.2]  # Probabilities must sum to 1
Numpy_Array = np.random.choice(array, size=3, p=probabilities)
print("Random Numpy Array with Probabilities :\n", Numpy_Array)

Output

Following is the output of the above code −

Random Numpy Array with Probabilities :
 [24 82 82]
numpy_array_creation_routines.htm
Advertisements