numpy.random.Generator.vonmises#

方法

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

從 von Mises 分佈中抽取樣本。

樣本是從 von Mises 分佈中抽取的,該分佈在間隔 [-pi, pi] 上具有指定的眾數 (mu) 和集中度 (kappa)。

von Mises 分佈(也稱為圓形常態分佈)是單位圓上的連續機率分佈。它可以被認為是常態分佈的圓形類比。

參數:
mufloat 或 float 的類陣列 (array_like)

分佈的眾數(“中心”)。

kappafloat 或 float 的類陣列 (array_like)

分佈的集中度,必須 >=0。

sizeint 或 int 元組,選用

輸出形狀。如果給定的形狀是,例如,(m, n, k),則會抽取 m * n * k 個樣本。如果 size 為 None(預設值),則如果 mukappa 都是純量,則會傳回單一值。否則,會抽取 np.broadcast(mu, kappa).size 個樣本。

傳回值:
outndarray 或 純量

從參數化的 von Mises 分佈中抽取的樣本。

另請參閱

scipy.stats.vonmises

機率密度函數、分佈或累積密度函數等。

註解

von Mises 分佈的機率密度為

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

其中 \(\mu\) 是眾數,\(\kappa\) 是集中度,而 \(I_0(\kappa)\) 是 0 階修正貝索函數。

von Mises 以 Richard Edler von Mises 命名,他出生於奧匈帝國,即現在的烏克蘭。他於 1939 年逃往美國,並成為哈佛大學的教授。他研究機率論、空氣動力學、流體力學和科學哲學。

參考文獻

[1]

Abramowitz, M. 和 Stegun, I. A. (編). “Handbook of Mathematical Functions with Formulas, Graphs, and Mathematical Tables, 9th printing,” New York: Dover, 1972.

[2]

von Mises, R., “Mathematical Theory of Probability and Statistics”, New York: Academic Press, 1964.

範例

從分佈中抽取樣本

>>> mu, kappa = 0.0, 4.0 # mean and concentration
>>> 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