我有一个像这样的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风格)。
答案 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)返回索引。