26人参与 • 2026-01-08 • ar
在日常数据分析和机器学习中,经常需要找到数组或矩阵中最大值的位置,这时,numpy 提供的 argmax() 函数就派上了用场。本文将系统地了解 argmax() 的作用、用法、常见陷阱以及在机器学习中的实际应用。
argmax 全称是 “argument of the maximum”,直译为 “最大值对应的索引”。
它返回的是 最大值的索引,而不是最大值本身。
numpy.argmax(a, axis=none)
| 参数 | 说明 |
|---|---|
a | 要计算的数组或矩阵 |
axis | 指定沿哪个轴查找最大值的位置,默认为 none(即将数组展平成一维) |
返回值:👉 一个整数(如果 axis=none)或一个包含索引的数组。
下边是其官方文档的介绍,官网链接numpy.argmax

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。
arr = np.array([
[1, 7, 3],
[4, 9, 2]
])
np.argmax(arr)
输出:
4
因为数组展平成 [1,7,3,4,9,2],最大值 9 在索引 4 位置。
np.argmax(arr, axis=1)
输出:
[1, 1]
解释:
np.argmax(arr, axis=0)
输出:
[1, 1, 0]
解释:
| 函数 | 返回内容 | 示例 |
|---|---|---|
| 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 |
| 想取最大值却用 argmax | np.argmax(x) | 改为 np.max(x) |
| 想得到二维坐标但忘了用 np.unravel_index() | 直接打印索引 | 使用 np.unravel_index() 转换 |
| 功能 | 函数 | 返回内容 | 常见用途 |
|---|---|---|---|
| 取最大值 | np.max() | 最大值 | 查看数值本身 |
| 取最大值索引 | np.argmax() | 最大值位置 | 分类预测、矩阵分析 |
| 获取二维索引 | np.unravel_index() | 行列坐标 | 多维数组索引转换 |
到此这篇关于numpy argmax()函数详解的文章就介绍到这了,更多相关numpy argmax()内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
您想发表意见!!点此发布评论
版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。
发表评论