将最大numpy数组偏移量转换为元组?

时间:2018-10-31 17:00:06

标签: python arrays numpy

是否可以将最大的numpy数组偏移量转换为元组?

例如,如果“数组”为:

[[1 2 3 6 8],
 [2 4 1 1 0],
 [0 0 0 20 0]]

然后np.max(array)将返回20,它的位置/偏移量是array [2] [3]。

是否可以将array [2] [3]转换为元组=(2,3)?

谢谢您的输入。

2 个答案:

答案 0 :(得分:3)

您正在寻找unravel_index和argmax

import numpy as np

a = np.array([[1 2 3 6 8],
              [2 4 1 1 0],
              [0 0 0 20 0]])

np.unravel_index( a.argmax() , a.shape)

答案 1 :(得分:1)

要查找所有最大值指数:

np.argwhere(np.max(a) == a)
# array([[2, 3]])

然后您可以获得第一个最大值索引:

np.argwhere(np.max(a) == a)[0]
# array([2, 3])

并根据需要将其转换为元组:

tuple(np.argwhere(np.max(a) == a)[0])
# (2, 3)