欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-05-25 17:06:08
...

现在有个需求是这样的:
已知选择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