numpy 二项分布n次概率矩阵抽样的有效方法

f0ofjuux  于 2023-04-30  发布在  其他
关注(0)|答案(1)|浏览(124)

我有一个二维概率矩阵。我想用二项分布从这个矩阵中抽样n次。使用numpy / scipy最优雅的方式是什么?

import numpy as np

test_mat = np.random.beta(10, 2, size=(10,3))
trials = 5

# this works but only 1 trial
np.random.binomial(1, test_mat)

# this gives error
np.random.binomial(1, test_mat, size = (10, 3, trials))

ValueError: shape mismatch: objects cannot be broadcast to a single shape
或者是我唯一的选择,首先将test_mat数组重新成形为三维(本质上,在第一和第二维的给定行和列中,为第三维的所有5列插入相同的值)。

j2cgzkjk

j2cgzkjk1#

您应该能够简单地执行以下操作:

np.random.binomial(1, test_mat, np.r_[trials, test_mat.shape])

最后你可以按照你想要的方式重塑它

相关问题