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深度学习实战PyQt5菜单和工具栏功能作用

    Python深度学习实战PyQt5菜单和工具栏功能作用

    本文详细解读通过 QtDesigner 创建主窗口、菜单栏和工具栏,并以菜单项 “退出” 为例关联系统定义的动作处理方法。有需要的朋友可以借鉴参考下,希望能够有所帮助
    2021-10-10
  • Python DNS查询放大攻击实现原理解析

    Python DNS查询放大攻击实现原理解析

    这篇文章主要介绍了Python DNS查询放大攻击实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习吧
    2022-10-10
  • 关于python中@property的使用方法

    关于python中@property的使用方法

    这篇文章主要介绍了关于python中@property的使用方法,@property装饰器会将方法转换为同名的只读属性,它可以与所定义的属性配合使用,需要的朋友可以参考下
    2023-07-07
  • JMETER如何随机请求参数

    JMETER如何随机请求参数

    作者分享了在业务场景中如何优化接口查询的实践经验,主要面临的问题是需要随机获取上游查询接口的结果,提出了两种方案,方案一是反复查询并随机获取查询结果;方案二是查询一次,然后随机从查询结果中获取,通过实测比较,方案二的性能提升较大
    2024-10-10
  • 解决Jupyter Notebook “signal only works in main thread“问题

    解决Jupyter Notebook “signal only works&nb

    这篇文章主要介绍了解决Jupyter Notebook “signal only works in main thread“问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-01-01
  • Python Pygame绘制直线实现光线反射效果

    Python Pygame绘制直线实现光线反射效果

    这篇文章主要为大家详细介绍了如何利用Python Pygame绘制直线以实现光线反射效果,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2023-11-11
  • Python实现视频自动打码的示例代码

    Python实现视频自动打码的示例代码

    我们在观看视频的时候,有时候会出现一些奇怪的马赛克,影响我们的观影体验,那么这些马赛克是如何精确的加上去的呢?本文就来为大家详细讲讲
    2022-04-04
  • 深入解析Python中占位符%的使用方法

    深入解析Python中占位符%的使用方法

    在Python中,%占位符是一种强大的工具,用于格式化字符串,本文将深入解析Python中占位符的使用方法,包括字符串格式化、数字格式化、日期格式化等多个方面,需要的可以参考下
    2023-12-12
  • Python中使用SAX解析xml实例

    Python中使用SAX解析xml实例

    这篇文章主要介绍了Python中使用SAX解析xml实例,利用SAX解析XML文档牵涉到两个部分:解析器和事件处理器,需要的朋友可以参考下
    2014-11-11
  • python导出chrome书签到markdown文件的实例代码

    python导出chrome书签到markdown文件的实例代码

    python导出chrome书签到markdown文件,主要就是解析chrome的bookmarks文件,然后拼接成markdown格式的字符串,最后输出到文件即可。下面给大家分享实例代码,需要的朋友参考下
    2017-12-12

最新评论