当前位置: 首页 > >

python-根据数据占比来进行随机选择

发布时间:

现在有个需求是这样的:
已知选择1,2,3,4四个节点的概率分别是0.1,0.2,0.3,0.4,怎么实现对应概率来进行随机选择呢?
可以按照下面的当时进行。



import numpy as np

list1 = [0.1,0.2,0.3,0.4]
percent = [0.0]
for i in range(len(list1)):
temp = list1[i]/sum(list1)
percent.append(percent[i] + temp)

for i in range(len(percent) - 1):
r = np.random.random()
print(r)
if r >= percent[i-1] and r < percent[i]:
chose_num = list1[i-1]
print(chose_num)

如果打印上面的percent会发现存在精度问题,具体原因可以参考下面这篇文章:
https://www.cnblogs.com/zheng123/p/9792387.html



友情链接: