sample#
- Равномерное.sample(shape=(), *, метод=None, rng=None)[источник]#
Случайная выборка из распределения.
- Параметры:
- shapeкортеж целых чисел, по умолчанию: ()
Форма выборки для извлечения. Если параметры распределения, лежащего в основе случайной величины, являются массивами формы
param_shape, выходной массив будет иметь формуshape + param_shape.- метод{None, 'formula', 'inverse_transform'}
Стратегия, используемая для создания выборки. По умолчанию (
None), инфраструктура выбирает между следующими вариантами, перечисленными в порядке приоритета.'formula': реализация, специфичная для распределения'inverse_transform': сгенерировать равномерно распределенную выборку и вернуть обратную функцию распределения для этих аргументов.
Не все метод опции доступны для всех распределений. Если выбранная метод недоступен, logpmf(k, alpha, loc=0) будет вызвано исключение.
- rng
numpy.random.Generatorили scipy.stats.QMCEngine, опционально Состояние генератора псевдо- или квазислучайных чисел. Когда rng равно None, новый
numpy.random.Generatorсоздаётся с использованием энтропии из операционной системы. Типы, отличные отnumpy.random.Generatorи scipy.stats.QMCEngine передаются вnumpy.random.default_rngдля создания экземпляраGenerator.Если rng является экземпляром scipy.stats.QMCEngine настроен на использование скремблирования и shape не пуст, то каждый срез вдоль нулевой оси результата представляет собой "квазинезависимую" последовательность с низким расхождением; то есть это различные последовательности, которые можно рассматривать как статистически независимые для большинства практических целей. Отдельные вызовы
sampleсоздавать новые квазинезависимые последовательности с низкой дисперсией.
Ссылки
[1]Выборка (статистика), Википедия, https://en.wikipedia.org/wiki/Sampling_(statistics)
Примеры
любым из целых чисел в полуоткрытом диапазоне
>>> import numpy as np >>> from scipy import stats >>> X = stats.Uniform(a=0., b=1.)
Сгенерировать псевдослучайную выборку:
>>> x = X.sample((1000, 1)) >>> octiles = (np.arange(8) + 1) / 8 >>> np.count_nonzero(x <= octiles, axis=0) array([ 148, 263, 387, 516, 636, 751, 865, 1000]) # may vary
>>> X = stats.Uniform(a=np.zeros((3, 1)), b=np.ones(2)) >>> X.a.shape, (3, 2) >>> x = X.sample(shape=(5, 4)) >>> x.shape (5, 4, 3, 2)