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