nlcpy.random.Generator.gamma¶
-
Generator.
gamma
(self, shape, scale=1.0, size=None)¶ Draws samples from a Gamma distribution.
Samples are drawn from a Gamma distribution with specified parameters, shape (sometimes designated “k”) and scale (sometimes designated “theta”), where both parameters are > 0.
- Parameters
- shapefloat
The shape of the gamma distribution. Must be non-negative.
- scalefloat, optional
The scale of the gamma distribution. Must be non-negative. Default is equal to 1.
- sizeint or tuple of ints, optional
Output shape. If the given shape is, e.g.,
(m, n, k)
, thenm * n * k
samples are drawn.
- Returns
- outndarray
Drawn samples from the parameterized gamma distribution.
Note
The probability density for the Gamma distribution is
\[p(x) = x^{k-1}\frac{e^{-x/\theta}}{\theta^k\Gamma(k)},\]where \(k\) is the shape and \(\theta\) the scale, and \(\Gamma\) is the Gamma function.
Restriction
If shape is neither a scalar nor None : NotImplementedError occurs.
If scale is neither a scalar nor None * NotImplementedError occurs.
Examples
Draw samples from the distribution:
>>> import nlcpy as vp >>> shape, scale = 2., 2. # mean=4, std=2*sqrt(2) >>> s = vp.random.default_rng().gamma(shape, scale, 1000)
Display the histogram of the samples, along with the probability density function:
>>> import matplotlib.pyplot as plt >>> import scipy.special as sps >>> count, bins, ignored = plt.hist(s.get(), 50, density=True) >>> y = bins**(shape-1)*(vp.exp(-bins/scale)/(sps.gamma(shape)*scale**shape)) >>> plt.plot(bins, y, linewidth=2, color='r') >>> plt.show()