Python中的多项式样本生成

4

我能够使用下面的代码从一个概率数组中生成指定大小的二项式样本(输出结果应该与输入的概率数组形状相同):

prob_list = [[0.3,0.3,0.4],[0.4,0.3,0.3]]
prob_array = np.asarray(prob_list)
y_sample = np.random.binomial(size=prob_array.shape, n=1, p=prob_array)
print(y_sample)

输出结果为:
[[0 0 0]
[1 1 1]]

输入概率的形状(2*3)和输出样本(2*3)的形状相同。

对于多项式分布,是否也可以做到这一点呢?可以为单行生成多项式样本。

y_sample = np.random.multinomial(size=1, n=1, pvals=prob_array[0])
print(y_sample)
[[1 0 0]]

如何推广这个方法,以获得与二项式(输出样本形状=输入概率形状相同)相同的输出?
1个回答

4

很抱歉,你需要手动循环遍历 prob_array。目前pvals 仅限于作为单个一维概率数组。


3
谢谢你的评论。如果我们有一个广义版本的多项式,那就太好了。我会开一个工单来处理这个问题。 - udi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接