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
上一篇: mybatis-sqlserver批量新增返回id
下一篇: MyBatis实现数据的批量新增和删除
推荐阅读