Spec-Zone.ru › NumPy 1.20

numpy.random.Generator.choice

метод

random.Generator.choice(a, size=None, replace=True, p=None, axis=0, shuffle=True)

Генерирует случайную выборку из заданного одномерного массива

Параметры
a{array_like, int}

Если массив NumPy, случайная выборка генерируется из его элементов. Если целое число, случайная выборка генерируется из np.arange(a).

size{int, tuple[int]}, optional

Форма выходных данных. Если заданная форма, например, (m, n, k), то m * n * k выборок извлекаются из одномерного a. Если a имеет более одной размерности, то форма size будет вставлена в axis измерение, поэтому выходная форма ndim будет a.ndim - 1 + len(size). По умолчанию None, в этом случае возвращается единственное значение.

replacebool, optional

Является ли выборка с возвращением или без возвращения

p1-D array_like, optional

Вероятности, связанные с каждым элементом в a. Если не задано, выборка предполагает равномерное распределение по всем элементам в a.

axisint, optional

Ось, по которой выполняется выбор. По умолчанию 0, выбирает по строкам.

shufflebool, optional

Перемешивается ли выборка при выборке без возвращения. По умолчанию True, False обеспечивает ускорение.

Возвращает
samplessingle item or ndarray

Сгенерированные случайные выборки

Возбуждает
ValueError

Если a является целым числом и меньше нуля, если p не одномерное, если a – массив-подобный объект с размером 0, если p не вектор вероятностей, если a и p имеют разную длину или если replace=False, и размер выборки больше размера генеральной совокупности.

См. также

integers, shuffle, permutation

Примеры

Генерирует случайную равномерную выборку из np.arange(5) размером 3:

>>> rng = np.random.default_rng()
>>> rng.choice(5, 3)
array([0, 3, 4]) # random
>>> #This is equivalent to rng.integers(0,5,3)

Генерирует случайную неравномерную выборку из np.arange(5) размером 3:

>>> rng.choice(5, 3, p=[0.1, 0, 0.3, 0.6, 0])
array([3, 3, 0]) # random

Генерирует случайную равномерную выборку из np.arange(5) размером 3 без возвращения:

>>> rng.choice(5, 3, replace=False)
array([3,1,0]) # random
>>> #This is equivalent to rng.permutation(np.arange(5))[:3]

Генерирует случайную неравномерную выборку из np.arange(5) размером 3 без возвращения:

>>> rng.choice(5, 3, replace=False, p=[0.1, 0, 0.3, 0.6, 0])
array([2, 3, 0]) # random

Любое из вышеперечисленного можно повторить с любым массивоподобным объектом вместо просто целых чисел. Например:

>>> aa_milne_arr = ['pooh', 'rabbit', 'piglet', 'Christopher']
>>> rng.choice(aa_milne_arr, 5, p=[0.5, 0.1, 0.1, 0.3])
array(['pooh', 'pooh', 'pooh', 'Christopher', 'piglet'], # random
      dtype='<U11')

© 2005–2021 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/1.20/reference/random/generated/numpy.random.Generator.choice.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API