Tuesday, November 19, 2024
Google search engine
HomeLanguagesHow to randomly select elements of an array with NumPy in Python...

How to randomly select elements of an array with NumPy in Python ?

Prerequisites: Numpy

The random values are useful in data-related fields like machine learning, statistics and probability. The numpy.random.choice() function is used to get random elements from a NumPy array. It is a built-in function in the NumPy package of python.

Syntax: numpy.random.choice( a , size = None, replace = True, p = None)

Parameters:

  • a: a one-dimensional array/list (random sample will be generated from its elements) or an integer (random samples will be generated in the range of this integer)
  • size: int or tuple of ints (default is None where a single random value is returned). If the given shape is (m,n), then m x n  random samples are drawn.
  • replace: (optional); the Boolean value that specifies whether the sample is drawn with or without replacement. When sample is larger than the population of the list, replace cannot be False.
  • p: (optional); a 1-D array containing probabilities associated with each entry in a. If not given then sample assumes uniform distribution over all entries in a.

Approach

  • Import module
  • Create a sample array
  • Randomly choose values from the array created
  • Print the array so generated.

Given below is the implementation for 1D and 2D array.

Generating 1-D list of random samples

Example 1: 

Python3




import numpy as np
 
prog_langs = ['python', 'c++', 'java', 'ruby']
 
# generating random samples
print(np.random.choice(prog_langs, size=8))
 
# generating random samples without replacement
print(np.random.choice(prog_langs, size=3, replace=False))
 
# generating random samples with probabilities
print(np.random.choice(prog_langs, size=10,
                       replace=True, p=[0.3, 0.5, 0.0, 0.2]))


Output :

Example 2:

Python3




import numpy as np
 
samples = 5
# generating random samples
print(np.random.choice(samples, size=10))
 
# generating random samples without replacement
print(np.random.choice(samples, size=5, replace=False))
 
# generating random samples with probabilities
print(np.random.choice(samples, size=5, replace=True))
 
# generating with probabilities
print(np.random.choice(samples, size=15,
                       replace=True, p=[0.2, 0.1, 0.1, 0.3, 0.3]))


Output:

Generating a 2-D list of random samples

Example: 

Python3




import numpy as np
 
prog_langs = ['python', 'c++', 'java', 'ruby']
 
# generating random samples
print(np.random.choice(prog_langs, size=(4, 5)))
 
# generating random samples with probabilities
print('\n')
print(np.random.choice(prog_langs, size=(10, 2),
                       replace=True, p=[0.3, 0.5, 0.0, 0.2]))


Output:

Example 2:

Python3




import numpy as np
 
samples = 5
 
# generating random samples
print(np.random.choice(samples, size=(5, 5)))
 
# generating with probabilities
print('\n')
print(np.random.choice(samples, size=(8, 3),
                       replace=True,
                       p=[0.2, 0.1, 0.1, 0.3, 0.3]))


Output:

RELATED ARTICLES

Most Popular

Recent Comments