Spec-Zone.ru › NumPy 1.21

numpy.random.Generator.choice

метод

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

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

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

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

size{int, tuple[int]}, необязательно

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

replacebool, необязательно

Возвращает выборку с заменой или без замены. Значение по умолчанию — True, что означает, что значение a может быть выбрано несколько раз.

p1-D array_like, необязательно

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

axisint, необязательно

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

shufflebool, необязательно

Случайно ли перемешивается выборка при выборке без замены. Значение по умолчанию — True, False ускоряет процесс.

Возвращает
samplesодиночный элемент или ndarray

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

Возможные исключения
ValueError

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

См. также

integers, shuffle, permutation

Примечания

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

Примеры

Сгенерировать равномерную случайную выборку из 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]

Сгенерировать равномерную случайную выборку из 2-мерного массива по первой оси (по умолчанию), без замены:

>>> rng.choice([[0, 1, 2], [3, 4, 5], [6, 7, 8]], 2, replace=False)
array([[3, 4, 5], # random
       [0, 1, 2]])

Сгенерировать неравномерную случайную выборку из 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–2022 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/1.21/reference/random/generated/numpy.random.Generator.choice.html

Spec-Zone.ru

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