我能够使用下面的代码从一个概率数组中生成指定大小的二项式样本(输出结果应该与输入的概率数组形状相同):
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]]
如何推广这个方法,以获得与二项式(输出样本形状=输入概率形状相同)相同的输出?