根据Numpy中的数据大小生成随机概率



我想使用Numpy生成一个使用范围和特定大小的非均匀随机样本,如下所示:

np.random.choice(m=5, n, p=[0.1, 0, 0.3, 0.6, 0])

然而,我希望基于m的大小自动地随机获得p,而不需要如上所述手动写入p=[0.1, 0, 0.3, 0.6, 0])。如何在Numpy中做到这一点?

一种获取长度为m的随机float值列表的方法,其总和为1:

m = 5
values = [np.random.rand() for _ in range(m)]
p = [v/sum(values) for v in values]

然而,由于values都在0-1的范围内,因此权重比您可能追求的更均匀。你必须详细说明你想要什么类型的分发,才能得到更具体的答案。

最新更新