Метод choice
Метод choice класса Generator
возвращает случайный элемент или набор элементов из переданного одномерного массива.
Первым параметром метод принимает массив или целое число (в этом случае он эквивалентен np.arange(a)).
Вторым параметром size задаётся форма выходного массива. Третьим параметром replace
определяет, разрешены ли повторения элементов. Четвертым параметром p можно передать
вероятности для каждого элемента.
Синтаксис
generator.choice(a, size=None, replace=True, p=None)
Пример
Давайте создадим генератор и выберем случайный элемент из массива чисел:
import numpy as np
rng = np.random.default_rng(0)
arr = np.array([1, 2, 3, 4, 5])
res = rng.choice(arr)
print(res)
Результат выполнения кода:
3
Пример
Давайте выберем несколько элементов из массива с повторением:
import numpy as np
rng = np.random.default_rng(0)
arr = np.array([1, 2, 3, 4, 5])
res = rng.choice(arr, size=5, replace=True)
print(res)
Результат выполнения кода:
[5 1 3 4 4]
Пример
Давайте выберем несколько элементов без повторения:
import numpy as np
rng = np.random.default_rng(0)
arr = np.array([1, 2, 3, 4, 5])
res = rng.choice(arr, size=3, replace=False)
print(res)
Результат выполнения кода:
[5 1 3]
Пример
Давайте выберем элементы с заданными вероятностями:
import numpy as np
rng = np.random.default_rng(0)
arr = np.array(['a', 'b', 'c', 'd', 'e'])
probs = np.array([0.1, 0.1, 0.1, 0.1, 0.6])
res = rng.choice(arr, size=10, p=probs)
print(res)
Результат выполнения кода:
['e' 'a' 'c' 'e' 'e' 'e' 'e' 'd' 'e' 'e']
Пример
Давайте создадим двухмерный массив случайных выборок:
import numpy as np
rng = np.random.default_rng(0)
arr = np.array([10, 20, 30, 40, 50])
res = rng.choice(arr, size=(2, 3), replace=True)
print(res)
Результат выполнения кода:
[[50 10 30]
[40 40 10]]
Пример
Давайте передадим целое число вместо массива (эквивалент np.arange(5)):
import numpy as np
rng = np.random.default_rng(0)
res = rng.choice(5, size=10, replace=True)
print(res)
Результат выполнения кода:
[4 0 2 3 3 4 4 1 4 4]