Spec-Zone.ru › NumPy 1.21

numpy.random.rayleigh

random.rayleigh(scale=1.0, size=None)

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

Распределения \(\chi\) и Вейбулла являются обобщениями распределения Рэлея.

Примечание

В новом коде следует использовать метод rayleigh экземпляра default_rng(); см. Быстрый старт.

Параметры
scalefloat или array_like из чисел с плавающей точкой, необязательно

Масштаб, также равный моде. Должен быть неотрицательным. По умолчанию равен 1.

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

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

Возвращаемые значения
outndarray или скаляр

Генерированные выборки из распределения Рэлея с заданными параметрами.

См. также

Generator.rayleigh

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

Примечания

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

\[P(x;scale) = \frac{x}{scale^2}e^{\frac{-x^2}{2 \cdotp scale^2}}\]

Распределение Рэлея может возникать, например, если восточная и северная компоненты скорости ветра имеют одинаковые гауссовы распределения с нулевым средним. Тогда скорость ветра будет подчиняться распределению Рэлея.

Ссылки

1

Brighton Webs Ltd., “Распределение Рэлея,” https://web.archive.org/web/20090514091424/http://brighton-webs.co.uk:80/distributions/rayleigh.asp

2

Википедия, “Распределение Рэлея” https://en.wikipedia.org/wiki/Rayleigh_distribution

Примеры

Генерируем значения из распределения и строим гистограмму

>>> from matplotlib.pyplot import hist
>>> values = hist(np.random.rayleigh(3, 100000), bins=200, density=True)

Высота волн, как правило, подчиняется распределению Рэлея. Если средняя высота волны составляет 1 метр, то какая доля волн, вероятно, будет выше 3 метров?

>>> meanvalue = 1
>>> modevalue = np.sqrt(2 / np.pi) * meanvalue
>>> s = np.random.rayleigh(modevalue, 1000000)

Процент волн, превышающих 3 метра:

>>> 100.*sum(s>3)/1000000.
0.087300000000000003 # random

© 2005–2022 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/1.21/reference/random/generated/numpy.random.rayleigh.html

Spec-Zone.ru

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