numpy.random.RandomState.choice
метод
- random.RandomState.choice(a, size=None, replace=True, p=None)
-
Генерирует случайную выборку из заданного одномерного массива
Новая в версии 1.7.0.
Примечание
Новый код должен использовать метод
choiceэкземпляраdefault_rng(); см. Быстрый старт.- Параметры
-
- 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 — массив-подобный объект нулевого размера, если p не является вектором вероятностей, если a и p имеют разную длину или если replace=False, а размер выборки больше размера генеральной совокупности
См. также
-
randint,shuffle,permutation 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–2022 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/1.21/reference/random/generated/numpy.random.RandomState.choice.html