Spec-Zone.ru › NumPy 1.21

numpy.random.choice

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

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

Новая в версии 1.7.0.

Примечание

Новый код должен использовать метод choice экземпляра default_rng(); см. Быстрый старт.

Параметры
aОдномерный массив-подобный объект или целое число

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

sizeцелое число или кортеж целых чисел, необязательно

Форма выходных данных. Если заданная форма, например, (m, n, k), то m * n * k выборок будут извлечены. По умолчанию None, в этом случае возвращается одно значение.

replaceлогическое значение, необязательно

Указывает, с возвращением или без возвращения производится выборка. По умолчанию True, что означает, что значение a может быть выбрано несколько раз.

pОдномерный массив-подобный объект, необязательно

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

Возвращает
samplesодно значение или массив NumPy

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

Возбуждает
ValueError

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

См. также

randint, shuffle, permutation
Generator.choice

который должен использоваться в новом коде

Примечания

Указание пользователем вероятностей через p использует более общий, но менее эффективный выборщик, чем по умолчанию. Общий выборщик создает другую выборку, чем оптимизированный выборщик, даже если каждый элемент p равен 1 / len(a).

Выбор случайных строк из двумерного массива с помощью этой функции невозможен, но возможен с помощью Generator.choice через его ключевое слово axis.

Примеры

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

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

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

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

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

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

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

>>> np.random.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']
>>> np.random.choice(aa_milne_arr, 5, p=[0.5, 0.1, 0.1, 0.3])
array(['pooh', 'pooh', 'pooh', 'Christopher', 'piglet'], # random
      dtype='<U11')

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

Spec-Zone.ru

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