首页 > Numpy 阅读数:5

Numpy argmax()与argmin()最值查询

除了使用 where 进行数组查询以外,我们还可以使用 argmax() 与 argmin() 方法进行数组最值坐标查询。

1. argmax查询最大值坐标

argmax 方法用来获得行列里最大值的坐标,这里可以通过指定 axis 获得最大值所在的行。可以看到在数组 a 中,各个列的坐标的最大值都是在第 3 行。
In [6]: np.argmax(a,axis=0)  #按行获取最大值的坐标
Out[6]: array([3, 3, 3, 3], dtype=int64)
同理,可以通过 argmax 方法获得每一行最大值所在的列。
In [7]: np.argmax(a, axis=1)  #按列获取最大值的坐标
Out[7]: array([3, 3, 3, 3], dtype=int64) 
类似地,可以获得该数组最大值所在的位置,这样的操作其实是将数组先转换为一个序列,然后返回这个序列的下标。
In [8]: np.argmax(a, axis=None)  # 整体获得最大值的坐标
Out[8]: 15

2. argmin查询最小值坐标

argmin 方法和 argmax 方法对应,用来获得最小值的下标,这里不再赘述。
In [9]: np.argmin(a, axis=0)  # 按行获得最小值的坐标
Out[9]: array([0, 0, 0, 0], dtype=int64)
In [10]: np.argmin(a, axis=1)  # 按列获得最小值的坐标
Out[10]: array([0, 0, 0, 0], dtype=int64)
In [11]: np.argmin(a, axis=None)  # 整体获得最小值的坐标
Out[11]: 0