用法:
RandomState.multinomial(n, pvals, size=None)
從多項分布中抽取樣本。
多項式分布是二項式分布的多元概括。進行以下一項實驗
p
可能的結果。此類實驗的一個示例是擲骰子,其結果可以是1到6。從分布中抽取的每個樣本代表n個此類實驗。它的價值X_i = [X_0, X_1, ..., X_p]
,代表結果為i
。參數: - n: : int
實驗次數。
- pvals: : sequence of floats, length p
每個的概率
p
不同的結果。這些總和必須為1(不過,隻要sum(pvals[:-1]) <= 1)
。- size: : int 或 tuple of ints, 可選參數
輸出形狀。如果給定的形狀是
(m, n, k)
, 然後m * n * k
抽取樣品。默認值為無,在這種情況下,將返回單個值。
返回值: - out: : ndarray
如果提供了形狀大小的抽取樣本。如果不是,則形狀為
(N,)
。換句話說,每個條目
out[i,j,...,:]
是從分布中得出的N-dimensional值。
例子:
投擲骰子20次:
>>> np.random.multinomial(20, [1/6.]*6, size=1) array([[4, 1, 7, 5, 2, 1]]) # random
它在1降落了4次,在2降落了,依此類推。
現在,擲骰子20次,再擲20次:
>>> np.random.multinomial(20, [1/6.]*6, size=2) array([[3, 4, 3, 3, 4, 3], # random [2, 4, 3, 4, 0, 7]])
對於第一次跑步,我們投擲了3次1、4次2等。對於第二次跑步,我們投擲了2次1、4次2等。
加載的骰子更有可能落在第6位:
>>> np.random.multinomial(100, [1/7.]*5 + [2/7.]) array([11, 16, 14, 17, 16, 26]) # random
概率輸入應歸一化。作為實現的詳細信息,最後一項的值將被忽略,並假定占據了所有剩餘概率質量,但是不應依賴於此。偏側硬幣的一側重量是另一側重量的兩倍,應該這樣采樣:
>>> np.random.multinomial(100, [1.0 / 3, 2.0 / 3]) # RIGHT array([38, 62]) # random
不喜歡:
>>> np.random.multinomial(100, [1.0, 2.0]) # WRONG Traceback (most recent call last): ValueError:pvals < 0, pvals > 1 or pvals contains NaNs
注:本文由純淨天空篩選整理自 numpy.random.mtrand.RandomState.multinomial。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。