numpy.random.choice#

random.выбор(a, размер=None, replace=True, p=None)#

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

Примечание

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

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

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

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

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

размерint или кортеж ints, опционально

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

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

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

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

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

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

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

Вызывает:
ValueError

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

Смотрите также

randint, shuffle, permutation
random.Generator.choice

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

Примечания

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

Выборка случайных строк из 2-D массива невозможна с этой функцией, но возможна с 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='