(Python)对numpy中的argmax用法的理解

这篇具有很好参考价值的文章主要介绍了(Python)对numpy中的argmax用法的理解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

作用

argmax()返回的就是最大数的索引
argmax()有一个参数axis,可以指定函数返回不同维的最大值。

一维

import numpy as np


a = np.array([1, 2, 3, 4, 5])
print(np.argmax(a, axis=0))

结果是4。而在python中一维向量只有一个方向,所以一维情况下axis只能等于0,函数只会返回一个值。
如果对它进行转置,它就会变成一个二维矩阵:

a = np.array([1, 3, 5, 7])
print(a)
print(a.shape)
b = a.reshape((4, 1))
print(b)
print(b.shape)
#结果
[1 3 5 7]
(4,)
[[1]
 [3]
 [5]
 [7]]
(4, 1)
axis的值大于0

比如说

a = np.array([1, 2, 3, 4, 5])
print(np.argmax(a, axis=1))

会报错numpy.AxisError: axis 1 is out of bounds for array of dimension 1

二维

axis=0
a = np.array([[1, 3, 5, 7],
              [5, 7, 2, 2],
              [4, 6, 8, 1]])
print(np.argmax(a, axis=0))

返回结果

[1 1 2 0]

输入的是一个3x4的矩阵。如果把输入矩阵的数用a[i][j]来表示的话,axis=0时返回的索引就是a[i][j]在j分别等于0,1,2,3,i取不同值时最大数所在位置对应i的值。因为j可以取4个值,所以得到的是一个1x4的结果。
就是a[0][0] a[1][0] a[2][0]比较,a[0][1] a[1][1] a[2][1]比较,a[0][2] a[1][2] a[2][2]比较,a[0][3] a[1][3] a[2][3]比较。
此时可以看成是按列找最大值。

axis=1

返回结果

[3 1 2]

同样如果把输入矩阵的数用a[i][j]来表示的话,axis=1时返回的索引就是a[i][j]在i分别等于0,1,2,j取不同值时最大数所在位置对应j的值。因为i可以取3个值,所以得到的是一个1x3的结果。
可以看成是按行找最大值。

三维

axis=0
a = np.array([[[1,  5,  5, 2],
               [9, -6,  2, 8],
               [-3, 7, -9, 1]],

              [[-1, 5, -5, 2],
               [9,  6,  2, 8],
               [3,  7,  9, 1]]])
print(np.argmax(a, axis=0))

返回结果

[[0 0 0 0]
 [0 1 0 0]
 [1 0 1 0]]

输入的是一个2x3x4的矩阵。如果我们把输入矩阵的数用a[i][j][k]来表示的话,axis=0时返回的索引就是a[i][j][k]在j等于0,1,2;k等于0,1,2,3,i取不同值时最大数对应的i的值。
相当于最大值相对于第一维所在的位置,就是黄框以及蓝框中最大数在两个红框中的位置。
(Python)对numpy中的argmax用法的理解

因为j*k=3x4,所以返回的是一个3x4的矩阵。

axis=1
[[1 2 0 1]
 [1 2 2 1]]

i*k=2x4,返回2x4的矩阵。返回的索引就是a[i][j][k]在i=0,1;k=0,1,2,3,j取不同值时的最大数对应的j的值。相当于最大值相对于第二维所在的位置。
(Python)对numpy中的argmax用法的理解

axis=2
[[1 0 1]
 [1 0 2]]

i*j=2x3,返回2x3的矩阵。返回的索引就是a[i][j][k]在i=0,1;j=0,1,2,k取不同值时的最大数 对应的k的值。相当于最大值相对于第三维所在的位置。
(Python)对numpy中的argmax用法的理解

更高维也是差不多的道理。

参考文献:https://www.cnblogs.com/touch-skyer/p/8509217.html
https://blog.csdn.net/qq_37148940/article/details/109672790文章来源地址https://www.toymoban.com/news/detail-424037.html

到了这里,关于(Python)对numpy中的argmax用法的理解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 三分钟学习一个python小知识4-----------我的对python中numpy的理解, 我列举了关于numpy常用的10个例子来深入理解numpy

    NumPy 是专门用于数值计算的Python库。它提供了实现向量、矩阵和高维数组的高效数据结构和函数,以及用于数学计算的工具。NumPy使得Python语言与MATLAB和R语言相比,更适合探索性数据分析、科学计算和大规模数据处理等领域。 NumPy中的核心数据结构是 ndarray (N维数组),它是

    2024年02月10日
    浏览(89)
  • 【Python】学习Python常用函数作用和用法

    1.函数 ​ 函数就是把程序进行打包,封装到一个包中,使用时可以直接进行调用 1.创建函数和调用函数: 2.创建传参函数 3.函数的返回值 ​ return:直接返回值,不在理会后面的所有的代码 4.位置参数 在使用传参函数中有两种关键称呼: ​ 形式参数(形参):在创建函数时

    2024年02月15日
    浏览(43)
  • numpy中的np.random.rand、np.random.randn、np.random.randint、np.random.uniform等用法

    随机数生成方法 1、np.random.rand(d0, d1, …, dn) np.random.rand(d0, d1, …, dn):生成一个指定形状的[0, 1)之间 均匀分布 的随机数数组。参数d0, d1, …, dn指定了生成的随机数数组的维度。 2、np.random.randn(d0, d1, …, dn) np.random.randn(d0, d1, …, dn):生成一个指定形状的**标准正态分布(**平均

    2024年02月09日
    浏览(45)
  • 线性代数-Python-01:向量的基本运算 - 手写Vector及numpy的基本用法

    https://github.com/Chufeng-Jiang/Python-Linear-Algebra-for-Beginner/tree/main 单位向量叫做 u hat Vector.py _globals.py main_vector.py main_numpy_vector.py

    2024年02月08日
    浏览(41)
  • 探索 DTD 在 XML 中的作用及解析:深入理解文档类型定义

    DTD 是文档类型定义(Document Type Definition)的缩写。DTD 定义了 XML 文档的结构以及合法的元素和属性。 通过使用 DTD,独立的团体可以就数据交换的标准 DTD 达成一致。 应用程序可以使用 DTD 来验证 XML 数据的有效性。 如果 DTD 在 XML 文件内声明,它必须包裹在 DOCTYPE 定义内:

    2024年04月26日
    浏览(34)
  • 面试问题-理解数字后仿,其次针对性理解数字后仿中的sdf文件(约束文件)的作用

    1)什么是sdf文件 Sdf文件,标准延时格式。 它描述设计中的timing信息,指明了模块管脚与管脚之间的delay,时钟到数据的delay,内部连接delay等。 后端布局布线之后由“QRC”出spef,通过PT生成sdf文件,所以sdf中timing信息都是布局布线之后客观存在的timing。 总而言之,sdf文件是

    2024年02月14日
    浏览(39)
  • 详述numpy中的np.random.rand()、np.random.randn()、np.random.randint()、np.random.uniform()函数的用法

         目录  (一)np.random.rand()  (二)np.random.randn()  (三)np.random.randint(low,high,size,dtype)  (四)np.random.uniform(low,high,size)         引言:在机器学习还有深度学习中,经常会用到这几个函数,为了便于以后熟练使用,现在对这几个函数进行总结。        

    2023年04月08日
    浏览(42)
  • 【34JavaScript let 和 const】JavaScript中的“let“和“const“关键字详解:作用、用法及区别

    // 使用 let 声明变量 let x = 10; // 在同一作用域内重新赋值 x = 20; // 在不同的作用域内使用 let 声明变量 function example() { let y = 30; console.log(x); // 输出:20 console.log(y); // 输出:30 } console.log(x); // 输出:20 console.log(y); // 报错:y is not defined // 使用 const 声明常量 const PI = 3.14159; // 尝

    2024年02月08日
    浏览(43)
  • 全面理解java中的构造方法以及this关键字的用法(超详细)

    Hello,各位铁汁们!我是小🐟儿哈!今天我又来更新我的Java基础学习博客了。 本篇主要内容概述: 1、🍚如何用构造方法初始化对象 2、🍚为啥要有this这个 3、🍚this.属性名访问成员变量、成员方法 4、🍚this.方法名 || this.()的用法 目录 初识构造方法  构造方法的使

    2023年04月09日
    浏览(62)
  • Python [::-1]的简单理解与用法

    从结果上来看,[::-1]的作用是 对列表进行翻转 ,比方说: 输出: 可以发现这个东西的用法和reversed函数是相同的,只不过更为简洁: 输出: 那么这个东西的原理是什么呢?一般来说,我们见过一个冒号的情况比较多,用来做列表切片: 输出: 多一个冒号的话,新冒号后面

    2024年02月12日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包