Spec-Zone.ru › NumPy 1.13

numpy.random.lognormal

numpy.random.lognormal(mean=0.0, sigma=1.0, size=None)

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

Генерирует случайные числа из логнормального распределения со заданными средним, стандартным отклонением и формой массива. Обратите внимание, что среднее и стандартное отклонение не являются значениями самого распределения, а являются значениями соответствующего нормального распределения, от которого оно получено.

Параметры:

mean : float или array_like чисел, необязательно

Среднее значение базового нормального распределения. По умолчанию 0.

sigma : float или array_like чисел, необязательно

Стандартное отклонение базового нормального распределения. Должно быть больше нуля. По умолчанию 1.

size : int или кортеж из целых чисел, необязательно

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

Возвращает:

out : ndarray или скаляр

Сгенерированные случайные числа из логнормального распределения.

См. также

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

Примечания

Переменная x имеет логнормальное распределение, если log(x) имеет нормальное распределение. Функция плотности вероятности для логнормального распределения:

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

где \mu - среднее, а \sigma - стандартное отклонение нормального распределения логарифма переменной. Логонормальное распределение возникает, если случайная величина является произведением большого числа независимых, одинаково распределенных переменных, так же как нормальное распределение возникает, если переменная является суммой большого числа независимых, одинаково распределенных переменных.

Ссылки

[R240] Limpert, E., Stahel, W. A., and Abbt, M., “Log-normal Distributions across the Sciences: Keys and Clues,” BioScience, Vol. 51, No. 5, May, 2001. http://stat.ethz.ch/~stahel/lognormal/bioscience.pdf
[R241] Reiss, R.D. and Thomas, M., “Statistical Analysis of Extreme Values,” Basel: Birkhauser Verlag, 2001, pp. 31-32.

Примеры

Генерация случайных чисел из распределения:

>>> mu, sigma = 3., 1. # mean and standard deviation
>>> s = np.random.lognormal(mu, sigma, 1000)

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

>>> import matplotlib.pyplot as plt
>>> count, bins, ignored = plt.hist(s, 100, normed=True, align='mid')
>>> x = np.linspace(min(bins), max(bins), 10000)
>>> pdf = (np.exp(-(np.log(x) - mu)**2 / (2 * sigma**2))
...        / (x * sigma * np.sqrt(2 * np.pi)))
>>> plt.plot(x, pdf, linewidth=2, color='r')
>>> plt.axis('tight')
>>> plt.show()

(Исходный код, png, pdf)

../../_images/numpy-random-lognormal-1_00_00.png

Демонстрация того, что произведение случайных чисел из равномерного распределения может быть хорошо аппроксимировано логнормальной функцией плотности вероятности.

>>> # Generate a thousand samples: each is the product of 100 random
>>> # values, drawn from a normal distribution.
>>> b = []
>>> for i in range(1000):
...    a = 10. + np.random.random(100)
...    b.append(np.product(a))
>>> b = np.array(b) / np.min(b) # scale values to be positive
>>> count, bins, ignored = plt.hist(b, 100, normed=True, align='mid')
>>> sigma = np.std(np.log(b))
>>> mu = np.mean(np.log(b))
>>> x = np.linspace(min(bins), max(bins), 10000)
>>> pdf = (np.exp(-(np.log(x) - mu)**2 / (2 * sigma**2))
...        / (x * sigma * np.sqrt(2 * np.pi)))
>>> plt.plot(x, pdf, color='r', linewidth=2)
>>> plt.show()

(png, pdf)

../../_images/numpy-random-lognormal-1_01_00.png

© 2008–2017 NumPy Developers
Licensed under the NumPy License.
https://docs.scipy.org/doc/numpy-1.13.0/reference/generated/numpy.random.lognormal.html

Spec-Zone.ru

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