在numpy页面上,他们给出了示例
s = np.random.dirichlet((10, 5, 3), 20)
这一切都很好,很棒;但是如果你想从一个二维的 alpha 数组中生成随机样本呢?
alphas = np.random.randint(10, size=(20, 3))
如果您尝试np.random.dirichlet(alphas)
,np.random.dirichlet([x for x in alphas])
或np.random.dirichlet((x for x in alphas))
,
它会导致
ValueError: object too deep for desired array
. 唯一似乎有效的是:
y = np.empty(alphas.shape)
for i in xrange(np.alen(alphas)):
y[i] = np.random.dirichlet(alphas[i])
print y
...这对于我的代码结构来说远非理想。为什么会这样,谁能想到一种更“类似numpy”的方式来做到这一点?
提前致谢。