numpy.argmin 是 NumPy 中的一个函数,用于返回数组中最小值的 索引位置。它在数据分析、排序、最优化问题等场景中非常实用。numpy.argmin 通常与索引操作 a[np.argmin(a)] 搭配使用,可直接获取数组中的最小值。同时,它也可以与 argmax 配合,用于快速定位极值的位置。在机器学习任务中,常用于判断分类结果中概率最大或最小的标签,是处理模型输出的一种高效方法。本文主要介绍一下NumPy中argmin方法的使用。

numpy.argmin

numpy.argmin(a, axis=None, out=None)    [source]

返回沿轴的最小值的索引。

参数 :

a :array_like

输入数组。

axisint, 可选

默认情况下,索引在扁平数组中,否则沿着指定的轴。

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]

推荐文档

相关文档

大家感兴趣的内容

随机列表