method
random.RandomState.exponential(scale=1.0, size=None)
Draw samples from an exponential distribution.
Its probability density function is
\[f(x; \frac{1}{\beta}) = \frac{1}{\beta} \exp(-\frac{x}{\beta}),\]
for x>0 and 0 elsewhere. \(\beta\) is the scale parameter, which is the inverse of the rate parameter \(\lambda = 1/\beta\). The rate parameter is an alternative, widely used parameterization of the exponential distribution
.
The exponential distribution is a continuous analogue of the geometric distribution. It describes many common situations, such as the size of raindrops measured over many rainstorms
, or the time between page requests to Wikipedia
.
Parameters:scalefloat or array_like of floatsThe scale parameter, \(\beta = 1/\lambda\). Must be non-negative.
sizeint or tuple of ints, optionalOutput shape. If the given shape is, e.g., (m,n,k), then m*n*k samples are drawn. If size is None (default), a single value is returned if scale is a scalar. Otherwise, np.array(scale).size samples are drawn.
Returns:outndarray or scalarDrawn samples from the parameterized exponential distribution.
References
[
]
Peyton Z. Peebles Jr., “Probability, Random Variables and Random Signal Principles”, 4th ed, 2001, p. 57.
Examples
A real world example: Assume a company has 10000 customer support agents and the average time between customer calls is 4 minutes.
>>> n=10000>>> time_between_calls=np.random.default_rng().exponential(scale=4,size=n)What is the probability that a customer will call in the next 4 to 5 minutes?
>>> x=((time_between_calls<5).sum())/n>>> y=((time_between_calls<4).sum())/n>>> x-y0.08 # may vary