索引numpy矩阵的最高值

时间:2014-08-14 09:16:59

标签: arrays numpy

我有一个像这样的numpy数组(4,7):

array([[ 1,  4,  5,  7,  8,  6,  7]
       [ 2, 23,  2,  4,  8, 94,  2],
       [ 1,  5,  6,  7, 10, 15, 20],
       [ 3,  9,  2,  7,  6,  5,  4]])

我想得到最高元素的索引,即94,形式如下:第一行第五列。因此输出应该是一个numpy数组([1,5])(matlab风格)。

1 个答案:

答案 0 :(得分:3)

您可以使用arr.argmax()获取最大索引的索引,但要获取实际的行和列,您必须使用np.unravel_index,如下所示:

import numpy as np

arr = np.array([[ 1,  4,  5,  7,  8,  6,  7],
                [ 2, 23,  2,  4,  8, 94,  2],
                [ 1,  5,  6,  7, 10, 15, 20],
                [ 3,  9,  2,  7,  6,  5,  4]])

maximum = np.unravel_index(arr.argmax(), arr.shape)

print(maximum)
# (1, 5)

您必须使用np.unravel_index,因为默认情况下np.argmax将从展平数组(在您的情况下为索引12)返回索引。