当前位置: 代码网 > it编程>游戏开发>ar > NumPy argmax()函数详解

NumPy argmax()函数详解

2026年01月08日 ar 我要评论
在日常数据分析和机器学习中,经常需要找到数组或矩阵中最大值的位置,这时,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]

解释:

  • 第一行最大值 7 在索引 1
  • 第二行最大值 9 也在索引 1

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

np.argmax(arr, axis=0)

输出:

[1, 1, 0]

解释:

  • 第 1 列最大值在第 2 行(索引 1)
  • 第 2 列最大值在第 2 行(索引 1)
  • 第 3 列最大值在第 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]

解释:

  • 第一行:类别 1 概率最大(0.8)
  • 第二行:类别 0 概率最大(0.6)
  • 第三行:类别 1 概率最大(0.4)

✅ 这正是深度学习模型(如 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()内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2026  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com