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,permutationrandom.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='