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])
返回最大值在该反向视图中的第一次出现