如何根据最大值为numpy随机选择分配权重?

zqdjd7g9  于 2023-04-30  发布在  其他
关注(0)|答案(1)|浏览(131)

因此,给定一个numpy数组,例如:
np.array([9, 4, 50, 6, 7, 19, 30])
我想写一个函数,随机选择数组中一个元素的索引。但是,我希望具有较大值的索引(例如索引2和6)具有较大的概率被选择。
我考虑过使用Numpy。random.choice,但是我不知道如何预定义权重。numpy.random。选择函数必须给出数组中每个条目的概率列表,并且它的总和应该是1。但我真的很难理解如何计算我的问题的概率。有人有小费吗?我真的很感激你的帮助

cigdeys3

cigdeys31#

试试这个:

import numpy as np

a = np.array([9, 4, 50, 6, 7, 19, 30])

weights = a/sum(a)
print(sum(weights))  # 1.0

np.random.choice(a,p=weights)

相关问题