Spec-Zone.ru › NumPy 1.21

numpy.random.RandomState.choice

метод

random.RandomState.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 — массив-подобный объект нулевого размера, если 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.RandomState.choice.html

Spec-Zone.ru

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