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]}, optional
-
Форма выходных данных. Если заданная форма, например,
(m, n, k), тоm * n * kвыборок извлекается из 1-мерногоa. Еслиaимеет более одной размерности, то формаsizeбудет вставлена в размерностьaxis, поэтому выходныеndimбудутa.ndim - 1 + len(size). По умолчанию None, в этом случае возвращается одно значение. - replacebool, optional
-
Включает или отключает выборку с возвращением. По умолчанию True, что означает, что значение
aможет быть выбрано несколько раз. - p1-D array_like, optional
-
Вероятности, связанные с каждым элементом в a. Если не задано, выборка предполагает равномерное распределение по всем элементам в
a. - axisint, optional
-
Ось, по которой выполняется выбор. По умолчанию 0, выбирается по строке.
- shufflebool, optional
-
Включает или отключает перемешивание выборки при выборке без возвращения. По умолчанию True, False обеспечивает ускорение.
- Возвращает:
-
- samplessingle item or ndarray
-
Сгенерированные случайные выборки
- Возможные исключения:
-
- ValueError
-
Если a — int и меньше нуля, если p не одномерный, если a — массив-подобный с размером 0, если p не вектор вероятностей, если a и p имеют разную длину или если replace=False, а размер выборки больше размера генеральной совокупности.
См. также
Примечания
Указание пользователем вероятностей через
pиспользует более общий, но менее эффективный выборщик, чем по умолчанию. Общий выборщик создает другую выборку, чем оптимизированный выборщик, даже если каждый элементpравен 1 / len(a).pдолжны суммироваться до 1 при приведении кfloat64. Для обеспечения этого вы можете выполнить нормализацию, используяp = p / np.sum(p, dtype=float).Примеры
Сгенерировать равномерную случайную выборку из 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–2024 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/2.0/reference/random/generated/numpy.random.Generator.choice.html