nlcpy.random.RandomState.gamma

RandomState.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), then m * 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.gamma(shape, scale, 1000)
>>> 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()
../../_images/nlcpy-random-RandomState-gamma-1.png