用法:
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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。