使用np.argwhere查找矩阵中的最大值

时间:2016-05-29 13:53:14

标签: python numpy

我试图使用argwhere函数获取矩阵中最大值的索引。我正在使用这种语法:

where = np.argwhere(np.argmax(matrix)) 

其中矩阵是我正在使用的矩阵,我希望在哪里成为一个元组,它给出了最大值的坐标。 但是在哪里打印为[0]而不是(0,col)就像我想要的那样(我只得到行而不是col)

1 个答案:

答案 0 :(得分:4)

np.argmax(arr)默认情况下,将最大值的索引返回到 flattened array arr.ravel()

要获取arr本身的最大值索引,请使用np.unravel_index

In [15]: np.random.seed(2016); arr = np.random.randint(10, size=(2,3)); arr
Out[15]: 
array([[3, 7, 2],
       [3, 8, 4]])
In [17]: np.argmax(arr)
Out[17]: 4
In [18]: np.unravel_index(np.argmax(arr), arr.shape)
Out[18]: (1, 1)