numpy.random.Generator.geometric#
方法
- random.Generator.geometric(p, size=None)#
從幾何分佈中抽取樣本。
白努利試驗是只有兩種結果的實驗:成功或失敗(例如,擲硬幣就是這樣一個實驗)。幾何分佈模型描述為了獲得成功必須進行的試驗次數。因此,它在正整數上得到支援,
k = 1, 2, ...
。幾何分佈的機率質量函數為
\[f(k) = (1 - p)^{k - 1} p\]其中 p 是單次試驗成功的機率。
- 參數:
- pfloat 或 float 的類陣列
單次試驗成功的機率。
- sizeint 或 int 元組,可選
輸出形狀。如果給定的形狀是,例如,
(m, n, k)
,則抽取m * n * k
個樣本。如果 size 為None
(預設值),如果p
是純量,則傳回單個值。否則,抽取np.array(p).size
個樣本。
- 傳回值:
- outndarray 或 純量
從參數化幾何分佈中抽取的樣本。
參考文獻
[1]Wikipedia, “Geometric distribution”, https://en.wikipedia.org/wiki/Geometric_distribution
範例
從幾何分佈中抽取 10,000 個值,其中單次成功的機率等於
p = 0.35
>>> p, size = 0.35, 10000 >>> rng = np.random.default_rng() >>> sample = rng.geometric(p=p, size=size)
單次執行後成功的試驗比例是多少?
>>> (sample == 1).sum()/size 0.34889999999999999 # may vary
具有
p=0.35
的幾何分佈如下所示>>> import matplotlib.pyplot as plt >>> count, bins, _ = plt.hist(sample, bins=30, density=True) >>> plt.plot(bins, (1-p)**(bins-1)*p) >>> plt.xlim([0, 25]) >>> plt.show()