2024-04-20 05:31:50 发布
网友
如何从35个给定概率的数字列表中生成随机数列表:
范围(1,5)-p1=0.5的数字概率
范围(6,15)-p2=0.25的数字概率
范围(16,35)-p3=0.25的数字概率
我尝试使用numpy.random.choice(),但我不知道如何插入可能的数字列表
numpy.random.choice()
您可以通过选择具有指定概率的适当范围,然后将所选范围用作random.choice的参数来实现这一点:
random.choice
range_set = [range(1,6), range(6, 16), range(16, 36)] random.choice(*random.choices(range_set, [0.5, 0.25, 0.25]))
这假设您希望在给定范围内进行统一选择
如果要从每个组中统一选择:
p=np.array([0.5/5]*5+[0.25/30]*30) np.random.choice(np.arange(1,36),p=p/p.sum())
更新:
如果您想选择一个随机数列表(您也可以设置有或没有替换标志):
np.random.choice(np.arange(1,36), size=N, replace=True, p=p/p.sum())
您可以通过选择具有指定概率的适当范围,然后将所选范围用作
random.choice
的参数来实现这一点:这假设您希望在给定范围内进行统一选择
如果要从每个组中统一选择:
更新:
如果您想选择一个随机数列表(您也可以设置有或没有替换标志):
相关问题 更多 >
编程相关推荐