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 и размер выборки больше размера генеральной совокупности.
См. также
Примечания
Указание пользователем вероятностей через
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