所以给定一个numpy数组,例如:
np.array([9, 4, 50, 6, 7, 19, 30])
我想写一个随机选择数组中元素之一的索引的函数。但是,我希望具有较大值的索引(例如索引 2 和 6)有更大的概率被选择。
我考虑过使用 numpy.random.choice,但是我不知道应该如何预定义权重。 必须为 numpy.random.choice 函数提供数组中每个条目的概率列表,它的总和应为 1。但我真的很难理解如何为我的问题计算此类概率。有人有一些提示吗?我真的很感激一些帮助
试试这个:
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)