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

问题描述 投票:0回答:1

所以给定一个numpy数组,例如:

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

我想写一个随机选择数组中元素之一的索引的函数。但是,我希望具有较大值的索引(例如索引 2 和 6)有更大的概率被选择。

我考虑过使用 numpy.random.choice,但是我不知道应该如何预定义权重。 必须为 numpy.random.choice 函数提供数组中每个条目的概率列表,它的总和应为 1。但我真的很难理解如何为我的问题计算此类概率。有人有一些提示吗?我真的很感激一些帮助

python list numpy random numpy-ndarray
1个回答
0
投票

试试这个:

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)
© www.soinside.com 2019 - 2024. All rights reserved.