numpy.argmin
numpy.argmin(a, axis=None, out=None) [source]
返回沿轴的最小值的索引。
参数 : | a :array_like 输入数组。 axis : 默认情况下,索引在扁平数组中,否则沿着指定的轴。 out :array, 可选 如果提供,结果将被插入此数组。 它应该具有适当的形状和dtype。 |
返回值 : | index_array :ndarray of ints 索引数组到数组中。 它的形状与a.shape相同, 但沿轴的尺寸已删除。 |
Notes
在多次出现最小值的情况下,返回对应于第一次出现的索引。
例子
1)基本用法示例
import numpy as np a = np.arange(6).reshape(2, 3) + 10 print(a) # 输出: # [[10 11 12] # [13 14 15]] # 全局最小值索引(按扁平化顺序) print(np.argmin(a)) # 输出:0,对应a[0,0] # 沿 axis=0(每列)查找最小值索引 print(np.argmin(a, axis=0)) # 输出:[0 0 0] # 沿 axis=1(每行)查找最小值索引 print(np.argmin(a, axis=1)) # 输出:[0 0]
2)多维数组中最小值的多维索引位置
import numpy as np a = np.arange(6).reshape(2, 3) + 10 print(a) # 输出: # [[10 11 12] # [13 14 15]] # 获取多维索引位置 ind = np.unravel_index(np.argmin(a, axis=None), a.shape) print(ind) # 输出:(0, 0) print(a[ind]) # 输出:10
3)配合 take_along_axis
使用(取每行最小值)
import numpy as np x = np.array([[4, 2, 3], [1, 0, 3]]) # 每行最小值索引 index_array = np.argmin(x, axis=-1) # 获取每行最小值(保持维度) min_values = np.take_along_axis(x, np.expand_dims(index_array, axis=-1), axis=-1) print(min_values) # 输出: # [[2] # [0]] # 去掉多余维度(squeeze) print(min_values.squeeze(axis=-1)) # 输出:[2 0]