numpy.random.Generator.vonmises#

方法

random.Generator.vonmises(mu, kappa, size=None)#

从冯·米塞斯分布中抽取样本。

从指定模式 (mu) 和离散度 (kappa) 的冯·米塞斯分布中抽取样本,范围为 [-pi, pi]。

冯·米塞斯分布(也称为循环正态分布)是单位圆上的连续概率分布。可以将其视为正态分布的循环模拟。

参数:
mufloat 或类似数组的 float

分布的模式(“中心”)。

kappafloat 或类似数组的 float

分布的离散度,必须 >= 0。

sizeint 或 int 元组,可选

输出形状。如果给定的形状为,例如,(m, n, k),则抽取 m * n * k 个样本。如果 size 为 None(默认值),则如果 mukappa 都是标量,则返回单个值。否则,将抽取 np.broadcast(mu, kappa).size 个样本。

返回值:
outndarray 或标量

从参数化的冯·米塞斯分布中抽取的样本。

另请参阅

scipy.stats.vonmises

概率密度函数、分布或累积分布函数等。

注释

冯·米塞斯分布的概率密度为

\[p(x) = \frac{e^{\kappa cos(x-\mu)}}{2\pi I_0(\kappa)},\]

其中 \(\mu\) 是模式,\(\kappa\) 是离散度,\(I_0(\kappa)\) 是 0 阶修正贝塞尔函数。

冯·米塞斯以理查德·冯·米塞斯命名,他出生于奥匈帝国,今属乌克兰。1939 年,他逃往美国,成为哈佛大学教授。他的研究领域包括概率论、空气动力学、流体力学和科学哲学。

参考文献

[1]

Abramowitz, M. 和 Stegun, I. A.(编)。“带有公式、图表和数学表格的数学函数手册,第 9 版印刷”,纽约:Dover,1972 年。

[2]

von Mises, R.,“概率论与统计学数学理论”,纽约:学术出版社,1964 年。

示例

从分布中抽取样本

>>> mu, kappa = 0.0, 4.0 # mean and dispersion
>>> rng = np.random.default_rng()
>>> s = rng.vonmises(mu, kappa, 1000)

显示样本的直方图,以及概率密度函数

>>> import matplotlib.pyplot as plt
>>> from scipy.special import i0  
>>> plt.hist(s, 50, density=True)
>>> x = np.linspace(-np.pi, np.pi, num=51)
>>> y = np.exp(kappa*np.cos(x-mu))/(2*np.pi*i0(kappa))  
>>> plt.plot(x, y, linewidth=2, color='r')  
>>> plt.show()
../../../_images/numpy-random-Generator-vonmises-1.png