如何在索引[重复]的二维数组中找到最大值

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

这个问题在这里已有答案:

我想找到一些优雅的方法,如何在python中使用索引在2D数组中找到最大值。我用了

np.amax(array)

用于搜索最大值,但我不知道如何获取索引。当然,我可以通过for循环找到它,但我认为有一些更好的方法。有人能帮助我吗?先感谢您。

python arrays numpy max
3个回答
2
投票

请参阅此answer,其中还详细说明了如何查找最大值及其索引,您可以使用argmax()

>>> a = array([[10,50,30],[60,20,40]])
>>> maxindex = a.argmax()
>>> maxindex
3

您可以使用unravel_index(a.argmax(), a.shape)将索引作为元组:

>>> from numpy import unravel_index
>>> unravel_index(a.argmax(), a.shape)
(1, 0)

1
投票

在这里,您可以使用返回的索引测试最大值,当您打印索引时,返回的索引应该类似于(array([0], dtype=int64), array([2], dtype=int64))

import numpy as np
a = np.array([[200,300,400],[100,50,300]])
indices = np.where(a == a.max())
print(a[indices]) # prints [400]

# Index for max value found two times (two locations)
a = np.array([[200,400,400],[100,50,300]])
indices = np.where(a == a.max())
print(a[indices]) # prints [400 400] because two indices for max
#Now lets print the location (Index)
for index in indices:
    print(index)

-1
投票

您可以使用argmax()获取最大值的索引。

a = np.array([[10,50,30],[60,20,40]])
maxindex = a.argmax()
print maxindex

它应该返回:

3

然后,您只需计算此值即可获得行和列索引。

最好

© www.soinside.com 2019 - 2024. All rights reserved.