Spec-Zone.ru › NumPy 1.19

numpy.random.Generator.normal

метод

Generator.normal(loc=0.0, scale=1.0, size=None)

Генерирует случайные выборки из нормального (гауссова) распределения.

Функция плотности вероятности нормального распределения, впервые выведенная Муавром, а спустя 200 лет независимо Гауссом и Лапласом [2], часто называется кривой Гаусса из-за характерной формы (см. пример ниже).

Нормальные распределения часто встречаются в природе. Например, они описывают часто встречающееся распределение выборок, подверженных влиянию большого числа малых случайных возмущений, каждое со своим уникальным распределением [2].

Параметры
locfloat or array_like of floats

Математическое ожидание (центр) распределения.

scalefloat or array_like of floats

Среднее квадратическое отклонение (разброс или «ширина») распределения. Должно быть неотрицательным.

sizeint or tuple of ints, optional

Форма выходных данных. Если заданная форма, например, (m, n, k), то генерируются m * n * k выборок. Если размерность None (по умолчанию), то возвращается одно значение, если loc и scale оба являются скалярами. В противном случае генерируются np.broadcast(loc, scale).size выборок.

Возвращаемое значение
outndarray or scalar

Сгенерированные выборки из параметризованного нормального распределения.

См. также

scipy.stats.norm

функция плотности вероятности, распределение или функция кумулятивного распределения и т. д.

Примечания

Функция плотности вероятности для гауссова распределения:

p(x) = \frac{1}{\sqrt{ 2 \pi \sigma^2 }}
e^{ - \frac{ (x - \mu)^2 } {2 \sigma^2} },

где \mu — математическое ожидание, а \sigma — среднее квадратическое отклонение. Квадрат среднего квадратического отклонения, \sigma^2, называется дисперсией.

Функция имеет пик в точке математического ожидания, и ее «разброс» увеличивается со средним квадратическим отклонением (функция достигает 0.607 от своего максимума в x + \sigma и x - \sigma [2]). Это подразумевает, что normal чаще возвращает выборки, близкие к математическому ожиданию, чем удаленные от него.

Ссылки

1

Википедия, «Нормальное распределение», https://en.wikipedia.org/wiki/Normal_distribution

2(1,2,3)

П. Р. Пиблз-младший, «Центральная предельная теорема» в «Вероятность, случайные величины и случайные сигналы», 4-е изд., 2001, стр. 51, 51, 125.

Примеры

Генерация выборок из распределения:

>>> mu, sigma = 0, 0.1 # mean and standard deviation
>>> s = np.random.default_rng().normal(mu, sigma, 1000)

Проверка среднего и дисперсии:

>>> abs(mu - np.mean(s))
0.0  # may vary
>>> abs(sigma - np.std(s, ddof=1))
0.1  # may vary

Вывод гистограммы выборок вместе с функцией плотности вероятности:

>>> import matplotlib.pyplot as plt
>>> count, bins, ignored = plt.hist(s, 30, density=True)
>>> plt.plot(bins, 1/(sigma * np.sqrt(2 * np.pi)) *
...                np.exp( - (bins - mu)**2 / (2 * sigma**2) ),
...          linewidth=2, color='r')
>>> plt.show()
../../../_images/numpy-random-Generator-normal-1_00_00.png

Двухстрочная четырёхстолбцовая матрица выборок из N(3, 6.25):

>>> np.random.default_rng().normal(3, 2.5, size=(2, 4))
array([[-4.49401501,  4.00950034, -1.81814867,  7.29718677],   # random
       [ 0.39924804,  4.68456316,  4.99394529,  4.84057254]])  # random

© 2005–2020 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/1.19/reference/random/generated/numpy.random.Generator.normal.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API