當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python numpy random.mtrand.RandomState.multinomial用法及代碼示例


用法:

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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。