flopscope.numpy.random.Generator.poisson
fnp.random.Generator.poisson(self, lam=1.0, size=None)
Draw samples from a Poisson distribution.
Adapted from NumPy docs np.random.Generator.poisson
Poisson distribution; cost = numel(output).
The Poisson distribution is the limit of the binomial distribution for large N.
Parameters
- lam:float or array_like of floats
Expected number of events occurring in a fixed-time interval, must be >= 0. A sequence must be broadcastable over the requested size.
- size:int or tuple of ints, optional
Output shape. If the given shape is, e.g.,
(m, n, k), thenm * n * ksamples are drawn. If size isNone(default), a single value is returned iflamis a scalar. Otherwise,flops.array(lam).sizesamples are drawn.
Returns
- out:ndarray or scalar
Drawn samples from the parameterized Poisson distribution.
Notes
The probability mass function (PMF) of Poisson distribution is
For events with an expected separation the Poisson distribution describes the probability of events occurring within the observed interval .
Because the output is limited to the range of the C int64 type, a
ValueError is raised when lam is within 10 sigma of the maximum
representable value.
References
1
Weisstein, Eric W. "Poisson Distribution."
From MathWorld--A Wolfram Web Resource.
https://mathworld.wolfram.com/PoissonDistribution.html2
Wikipedia, "Poisson distribution",
https://en.wikipedia.org/wiki/Poisson_distributionExamples
Draw samples from the distribution:
>>> rng = flops.random.default_rng()
>>> lam, size = 5, 10000
>>> s = rng.poisson(lam=lam, size=size)Verify the mean and variance, which should be approximately lam:
>>> s.mean(), s.var()
(4.9917 5.1088311) # may varyDisplay the histogram and probability mass function:
>>> import matplotlib.pyplot as plt
>>> from scipy import stats
>>> x = flops.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()Draw each 100 values for lambda 100 and 500:
>>> s = rng.poisson(lam=(100., 500.), size=(100, 2))