python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > NumPy argmax()

NumPy argmax()函数详解

作者:程序员风屿

在日常数据分析和机器学习中,经常需要找到数组或矩阵中最大值的位置,这时NumPy 提供的 argmax() 函数就派上了用场,本文将系统地了解 argmax() 的用法,具有一定的参考价值,感兴趣的可以了解一下

在日常数据分析和机器学习中,经常需要找到数组或矩阵中最大值的位置,这时,NumPy 提供的 argmax() 函数就派上了用场。本文将系统地了解 argmax() 的作用、用法、常见陷阱以及在机器学习中的实际应用。

一、argmax 是什么?

argmax 全称是 “argument of the maximum”,直译为 “最大值对应的索引”。

它返回的是 最大值的索引,而不是最大值本身。

二、基本语法

numpy.argmax(a, axis=None)
参数说明
a要计算的数组或矩阵
axis指定沿哪个轴查找最大值的位置,默认为 None(即将数组展平成一维)

返回值:👉 一个整数(如果 axis=None)或一个包含索引的数组。

下边是其官方文档的介绍,官网链接numpy.argmax

三、基本示例

1️⃣ 一维数组

import numpy as np

arr = np.array([10, 25, 18, 36, 5])
index = np.argmax(arr)

print("最大值索引:", index)
print("最大值:", arr[index])

输出:

最大值索引: 3
最大值: 36

解释:最大值是 36,位于索引位置 3。

2️⃣ 二维数组

arr = np.array([
    [1, 7, 3],
    [4, 9, 2]
])

(1)不指定 axis

np.argmax(arr)

输出:

4

因为数组展平成 [1,7,3,4,9,2],最大值 9 在索引 4 位置。

(2)按行查找(axis=1)

np.argmax(arr, axis=1)

输出:

[1, 1]

解释:

(3)按列查找(axis=0)

np.argmax(arr, axis=0)

输出:

[1, 1, 0]

解释:

四、argmax 与 max 的区别

函数返回内容示例
np.max()最大值np.max([1,3,2]) → 3
np.argmax()最大值的索引np.argmax([1,3,2]) → 1

两者常搭配使用:

arr = np.array([2, 8, 5])
print("最大值:", np.max(arr))
print("最大值索引:", np.argmax(arr))

输出:

最大值: 8
最大值索引: 1

五、在机器学习中的应用

argmax() 在机器学习中非常常见,尤其在分类任务中用于获取预测类别标签

🎯 示例:分类模型输出预测概率

假设模型输出如下概率矩阵:

import numpy as np

proba = np.array([
    [0.1, 0.8, 0.1],
    [0.6, 0.3, 0.1],
    [0.2, 0.4, 0.4]
])

我们想得到每个样本的预测类别(即概率最大的那一类):

pred_labels = np.argmax(proba, axis=1)
print(pred_labels)

输出:

[1, 0, 1]

解释:

✅ 这正是深度学习模型(如 softmax 输出层)中最常见的做法。

六、常见坑点总结

问题错误示例正确做法
没有指定 axis 导致结果不符合预期np.argmax(matrix)指定 axis=1 或 axis=0
想取最大值却用 argmaxnp.argmax(x)改为 np.max(x)
想得到二维坐标但忘了用 np.unravel_index()直接打印索引使用 np.unravel_index() 转换

七、总结对比表

功能函数返回内容常见用途
取最大值np.max()最大值查看数值本身
取最大值索引np.argmax()最大值位置分类预测、矩阵分析
获取二维索引np.unravel_index()行列坐标多维数组索引转换

到此这篇关于NumPy argmax()函数详解的文章就介绍到这了,更多相关NumPy argmax()内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文