NumPy argmax()函数详解

 更新时间:2026年01月08日 09:19:31   作者:程序员风屿  
在日常数据分析和机器学习中,经常需要找到数组或矩阵中最大值的位置,这时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()内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python出现SyntaxError: invalid syntax错误问题及解决

    Python出现SyntaxError: invalid syntax错误问题及解决

    文章主要讲解了Python中常见的`SyntaxError: invalid syntax`错误及常见原因和解决方法,包括括号、引号或冒号不匹配、错误的缩进、保留关键字用做变量名、赋值语句错、导入语句错、字典列表或元组使用错及字符串格式化错等提供了调试技巧和示例
    2026-05-05
  • Python selenium抓取虎牙短视频代码实例

    Python selenium抓取虎牙短视频代码实例

    这篇文章主要介绍了Python selenium抓取虎牙短视频代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-03-03
  • django 常用orm操作详解

    django 常用orm操作详解

    下面小编就为大家带来一篇django 常用orm操作详解。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-09-09
  • Python实现批量梯度下降法(BGD)拟合曲线

    Python实现批量梯度下降法(BGD)拟合曲线

    这篇文章主要介绍了Python实现批量梯度下降法(BGD)拟合曲线,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-04-04
  • Python处理文本数据的方法详解

    Python处理文本数据的方法详解

    学习Python时,它总能让人深刻体会到这款语言的魅力。今天小编为大家带来一个有趣的项目,用Python处理文本数据,一起来看看今天的问题吧
    2022-06-06
  • windows环境中利用celery实现简单任务队列过程解析

    windows环境中利用celery实现简单任务队列过程解析

    这篇文章主要介绍了windows环境中利用celery实现简单任务队列过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-11-11
  • Python使用Matplotlib绘制基础可视化图表的完整指南

    Python使用Matplotlib绘制基础可视化图表的完整指南

    在Python中进行数据可视化,最常用且功能强大的库是 Matplotlib,它可以帮助你轻松绘制出柱状图,折线图,饼图,散点图等,下面小编就和大家详细介绍一下具体实现方法吧
    2026-05-05
  • 基于PyScreeze实现截屏和定位功能

    基于PyScreeze实现截屏和定位功能

    PyScreeze 是一个开源的 Python 屏幕截图模块,适用于 Python 2 和 Python 3,该项目由开源技术专家 Al Sweigart 创建,旨在提供一个简单而强大的工具,用于屏幕截图以及图像识别功能,本文就给大家介绍了基于PyScreeze实现截屏和定位功能,需要的朋友可以参考下
    2025-04-04
  • Python / PyCharm虚拟环境搭建与使用方法详解

    Python / PyCharm虚拟环境搭建与使用方法详解

    虚拟环境是在本地创建一个独立的Python环境,这个环境拥有自己的独立的Python解释器和包管理器,不与系统环境和其他虚拟环境产生干扰,这篇文章主要介绍了Python/PyCharm虚拟环境搭建与使用方法的相关资料,需要的朋友可以参考下
    2025-08-08
  • 在python中使用with打开多个文件的方法

    在python中使用with打开多个文件的方法

    今天小编就为大家分享一篇在python中使用with打开多个文件的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-01-01

最新评论