Spec-Zone.ru › NumPy 1.18

numpy.random.RandomState.normal

метод

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

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

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

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

Примечание

Новый код должен использовать метод normal экземпляра default_rng(), см. random-quick-start.

Параметры
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

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

Generator.normal

который следует использовать для нового кода.

Примечания

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

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]). Это означает, что нормальное распределение чаще возвращает образцы, расположенные близко к математическому ожиданию, чем те, которые находятся далеко.

Ссылки

1

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

2(1,2,3)

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

Примеры

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

>>> mu, sigma = 0, 0.1 # mean and standard deviation
>>> s = np.random.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-RandomState-normal-1_00_00.png

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

>>> np.random.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.18/reference/random/generated/numpy.random.RandomState.normal.html

Spec-Zone.ru

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