当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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