scipy.stats.Normal.

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) будет вызвано исключение.

rngnumpy.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)