gpt4 book ai didi

python - python 中的下一个 argmax 值

转载 作者:太空狗 更新时间:2023-10-29 21:31:27 24 4
gpt4 key购买 nike

我有一个从大型二维数组返回 argmax 的函数

getMax = np.argmax(dist, axis=1)

但是我想获得下一个最大值,有没有办法从原始数组中删除 getMax 值,然后再次执行 argmax?

最佳答案

使用命令 np.argsort(a, axis=-1, kind='quicksort', order=None),但要选择适当的参数(如下)。

这里是 documentation .注意“它返回一个索引数组,这些索引的形状与沿给定轴的索引数据按排序顺序排列。”

默认顺序是从小到大。所以用 -dist 排序(为了快速编码)。注意:执行 -dist 会导致生成一个新数组,如果 dist 很大,您可能会关心它。请参阅帖子底部以获得更好的替代方案。

这是一个例子:

x = np.array([[1,2,5,0],[5,7,2,3]])
L = np.argsort(-x, axis=1)

print L
[[2 1 0 3]
[1 0 3 2]]

x
array([[1, 2, 5, 0],
[5, 7, 2, 3]])

因此 L 的一行中的第 n 个条目给出了 x 的第 n 个最大元素的位置。

x 不变。

L[:,0] 将给出与 np.argmax(x)

相同的输出
L[:,0]
array([2, 1])

np.argmax(x,axis=1)
array([2, 1])

L[:,1] 将给出与假设的argsecondmax(x)

相同的结果
L[:,1]
array([1, 0])

如果你不想生成一个新的列表,所以你不想使用-x:

L = np.argsort(x, axis=1)

print L
[[3 0 1 2]
[2 3 0 1]]

L[:,-1]
array([2, 1])

L[:,-2]
array([1, 0])

关于python - python 中的下一个 argmax 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27473601/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com