我试图使用argwhere函数获取矩阵中最大值的索引。我正在使用这种语法:
where = np.argwhere(np.argmax(matrix))
其中矩阵是我正在使用的矩阵,我希望在哪里成为一个元组,它给出了最大值的坐标。 但是在哪里打印为[0]而不是(0,col)就像我想要的那样(我只得到行而不是col)
答案 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)