method
Draw samples from a Beta distribution.
The Beta distribution is a special case of the Dirichlet distribution, and is related to the Gamma distribution. It has the probability distribution function
where the normalization, B, is the beta function,
It is often seen in Bayesian inference and order statistics.
Alpha, positive (>0).
Beta, positive (>0).
Output 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 a and b are both scalars. Otherwise, np.broadcast(a, b).size samples are drawn.
Drawn samples from the parameterized beta distribution.
Wikipedia, “Beta distribution”, https://en.wikipedia.org/wiki/Beta_distribution
The beta distribution has mean a/(a+b). If a == b and both are > 1, the distribution is symmetric with mean 0.5.
>>> rng = np.random.default_rng() >>> a, b, size = 2.0, 2.0, 10000 >>> sample = rng.beta(a=a, b=b, size=size) >>> np.mean(sample) 0.5047328775385895 # may vary
Otherwise the distribution is skewed left or right according to whether a or b is greater. The distribution is mirror symmetric. See for example:
>>> a, b, size = 2, 7, 10000 >>> sample_left = rng.beta(a=a, b=b, size=size) >>> sample_right = rng.beta(a=b, b=a, size=size) >>> m_left, m_right = np.mean(sample_left), np.mean(sample_right) >>> print(m_left, m_right) 0.2238596793678923 0.7774613834041182 # may vary >>> print(m_left - a/(a+b)) 0.001637457145670096 # may vary >>> print(m_right - b/(a+b)) -0.0003163943736596009 # may vary
Display the histogram of the two samples:
>>> import matplotlib.pyplot as plt >>> plt.hist([sample_left, sample_right], ... 50, density=True, histtype='bar') >>> plt.show()
© 2005–2024 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/2.4/reference/random/generated/numpy.random.Generator.beta.html