在Numpy
中,我们可以使用np.random.choice(N, data.shape[0], p=[0.6, 0.2, 0.1, 0.05, 0.05])
随机生成随机样本。当N的数量较少时,我可以手动填充p
。但是,当N较大(例如N = 50或N = 100)时,如何自动生成具有这种不均匀分布的p
,例如,概率从左到右减小,反之亦然?
据我所知,以下方法可以自动生成p
,但结果似乎仍然是均匀分布。
values = [np.random.rand() for _ in range(N)]
p = [v/sum(values) for v in values]
如何自动获得这种p=[0.6, 0.2, 0.1, 0.05, 0.05]
?