numpy.random.Generator.poisson#

метод

random.Generator.poisson(lam=1.0, размер=None)#

Извлечение выборок из распределения Пуассона.

Распределение Пуассона является пределом биномиального распределения для больших N.

Параметры:
lamfloat или array_like из float

Ожидаемое количество событий, происходящих в фиксированном временном интервале, должно быть >= 0. Последовательность должна быть транслируемой на запрошенный размер.

размерint или кортеж ints, опционально

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

Возвращает:
выходndarray или скаляр

Выборки, взятые из параметризованного распределения Пуассона.

Примечания

Функция вероятности (PMF) распределения Пуассона равна

\[f(k; \lambda)=\frac{\lambda^k e^{-\lambda}}{k!}\]

Для событий с ожидаемым разделением \(\lambda\) распределение Пуассона \(f(k; \lambda)\) описывает вероятность \(k\) события, происходящие в пределах наблюдаемого интервала \(\lambda\).

Поскольку вывод ограничен диапазоном типа C int64, возникает ValueError, когда lam находится в пределах 10 сигм от максимального представимого значения.

Ссылки

[1]

Вайсштейн, Эрик В. 'Распределение Пуассона.' Из MathWorld – веб-ресурс Wolfram. https://mathworld.wolfram.com/PoissonDistribution.html

[2]

Википедия, "Распределение Пуассона", https://en.wikipedia.org/wiki/Poisson_distribution

Примеры

Извлечь выборки из распределения:

>>> rng = np.random.default_rng()
>>> lam, size = 5, 10000
>>> s = rng.poisson(lam=lam, size=size)

Проверьте среднее значение и дисперсию, которые должны быть приблизительно lam:

>>> s.mean(), s.var()
(4.9917 5.1088311)  # may vary

Отобразить гистограмму и функцию вероятности массы:

>>> import matplotlib.pyplot as plt
>>> from scipy import stats
>>> x = np.arange(0, 21)
>>> pmf = stats.poisson.pmf(x, mu=lam)
>>> plt.hist(s, bins=x, density=True, width=0.5)
>>> plt.stem(x, pmf, 'C1-')
>>> plt.show()
../../../_images/numpy-random-Generator-poisson-1_00_00.png

Нарисовать каждые 100 значений для lambda 100 и 500:

>>> s = rng.poisson(lam=(100., 500.), size=(100, 2))