dask.array.random.exponential
dask.array.random.exponential¶
- dask.array.random.exponential(*args, **kwargs)¶
Draw samples from an exponential distribution.
This docstring was copied from numpy.random.mtrand.RandomState.exponential.
Some inconsistencies with the Dask version may exist.
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 [3].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 [1], or the time between page requests to Wikipedia [2].
Note
New code should use the ~numpy.random.Generator.exponential method of a ~numpy.random.Generator instance instead; please see the Quick Start.
- Parameters
- scalefloat or array_like of floats
The scale parameter, \(\beta = 1/\lambda\). Must be non-negative.
- sizeint or tuple of ints, optional
Output shape. If the given shape is, e.g.,
(m, n, k)
, thenm * n * k
samples are drawn. If size isNone
(default), a single value is returned ifscale
is a scalar. Otherwise,np.array(scale).size
samples are drawn.
- Returns
- outndarray or scalar
Drawn samples from the parameterized exponential distribution.
See also
random.Generator.exponential
which should be used for new code.
References
- 1
Peyton Z. Peebles Jr., “Probability, Random Variables and Random Signal Principles”, 4th ed, 2001, p. 57.
- 2
Wikipedia, “Poisson process”, https://en.wikipedia.org/wiki/Poisson_process
- 3
Wikipedia, “Exponential distribution”, https://en.wikipedia.org/wiki/Exponential_distribution
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-y 0.08 # may vary