Python 如何返回数组中最大值的位置

Python 如何返回数组中最大值的位置,python,numpy,argmax,Python,Numpy,Argmax,如上所述,我想返回数组最大值的位置。例如,如果我有数组: A = np.matrix([[1,2,3,33,99],[4,5,6,66,22],[7,8,9,99,11]]) argmax(A)只返回第一个最大值,在本例中为4。但是,如何编写代码使其返回[4,13]。可能有比argamax()更好的函数,因为我实际上需要的只是最终最大值的位置。找到数组的最大值,然后使用 >m=a.max() >>>式中(a.重塑(1,-1)==m) (数组([0,0]),数组([4,13])) 之后,只需索

如上所述,我想返回数组最大值的位置。例如,如果我有数组:

A = np.matrix([[1,2,3,33,99],[4,5,6,66,22],[7,8,9,99,11]])

argmax(A)只返回第一个最大值,在本例中为4。但是,如何编写代码使其返回[4,13]。可能有比argamax()更好的函数,因为我实际上需要的只是最终最大值的位置。

找到数组的最大值,然后使用

>m=a.max()
>>>式中(a.重塑(1,-1)==m)
(数组([0,0]),数组([4,13]))

之后,只需索引元组的第二个元素。请注意,为了获得您感兴趣的索引,我们必须重新调整数组的形状。

找到数组的最大值,然后使用

>m=a.max()
>>>式中(a.重塑(1,-1)==m)
(数组([0,0]),数组([4,13]))

之后,只需索引元组的第二个元素。请注意,为了获得您感兴趣的索引,我们必须重新调整数组的形状。

因为您提到您只对最大值的最后一个位置感兴趣,所以稍微快一点的解决方案可能是:

A.size - 1 - np.argmax(A.flat[::-1])
在这里:

A.flat
A
的平面视图

A.flat[:-1]
是该平面视图的反向视图


np.argmax(A.flat[:-1])
返回该反向视图中第一个出现的最大值。

由于您提到只对最大值的最后一个位置感兴趣,因此速度稍快的解决方案可能是:

A.size - 1 - np.argmax(A.flat[::-1])
在这里:

A.flat
A
的平面视图

A.flat[:-1]
是该平面视图的反向视图

np.argmax(A.flat[:-1])
返回最大值在该反向视图中的第一次出现