Spec-Zone.ru › NumPy 2.0

numpy.random.RandomState.choice

метод

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

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

Добавлена в версии 1.7.0.

Примечание

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

Предупреждение

Эта функция использует тип данных C-long, который составляет 32 бита в Windows и в противном случае 64 бита на 64-битных платформах (и 32 бита на 32-битных). С NumPy 2.0, по умолчанию в NumPy целое число имеет 32 бита на 32-битных платформах и 64 бита на 64-битных платформах.

Параметры:
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
random.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–2024 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/2.0/reference/random/generated/numpy.random.RandomState.choice.html

Spec-Zone.ru

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