我的编程空间,编程开发者的网络收藏夹
学习永远不晚

numpy中argmax怎么用

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

numpy中argmax怎么用

这篇文章将为大家详细讲解有关numpy中argmax怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

    一、基本介绍

    numpy中的argmax简而言之就是返回最大值的索引,当使用np.argmax(axis),这里方向axis的指定往往让人不理解。
    简而言之:这里axis可以让我们从、或者是深度方向来看一个高维数组。

    二、代码实验

    1、一维数组情况

    numpy中argmax怎么用

    简单一维情况,np.argmax()直接返回最大值的索引,不指定axis可以认为是将数组拉平之后寻找最大值的索引

    1.1、axis=0

    当我们指定axis=0时,其实是在中作比较,寻找最大的的索引

    numpy中argmax怎么用

    当然对于这个一维情况没有什么影响。

    1.2、axis=1

    numpy中argmax怎么用

    当我们指定axis=1的时候报错了,这是因为我们的a是一维数组,没有axis=1这个轴,可见当我们使用np.argmax()时axis的指定不能超过所需要排序的数组

    2、二维数组情况

    numpy中argmax怎么用

    不指定axis就是相当于把二维数组拉平,直接选取最大值的索引

    2.1、axis=0

    numpy中argmax怎么用

    指定axis=0就是比较,返回索引中的最大值

    numpy中argmax怎么用

    我们改写一个b中的元素,我们期望的结果是[2,2,1,2]

    numpy中argmax怎么用

    实际结果和我们期望相符合

    2.2、axis=1

    numpy中argmax怎么用

    指定axis=0就是比较,返回索引中的最大值

    3、三维数组情况

    一个三维数组可以视作一张图片,它的三个维度分别为(high, width, channels) 分别表示图像的高、宽、通道数(深度)。常见的彩色图像都有三个通道,我们以常见的RGB图像为例构建一个数组。

    numpy中argmax怎么用

    直接使用np.argmax(),就是之间将三维数组拉平,寻找最大值的索引

    3.1、axis=0

    单独查看c的三个通道的数据,如图所示

    numpy中argmax怎么用

    对于三个通道取axis=0意味分别比较列返回行的最大值索引

    numpy中argmax怎么用

    我们期望的返回值应该是[[1,1,1,],[1,1,1],[1,1,1]],实际的结果和我们的期望一致

    numpy中argmax怎么用

    3.2、axis=1

    numpy中argmax怎么用

    对于三个通道取axis=1意味分别比较行返回列的最大值索引

    我们期望的结果是[[2, 2, 2],[2, 2, 2],[2, 2, 2],[2, 2, 2]],,实际的结果和我们的期望一致

    numpy中argmax怎么用

    3.3、axis=2

    取axis=2意味着我们从图像的深度方向(通道方向)来进行比较,可以认为三个数组的叠在一起的,分别对应channel0,channel1,channel2而我们取最大值的索引就是返回对应pixel像素所在的通道索引

    numpy中argmax怎么用

    c的channel2所有的像素值均大于其他两个channel所有返回值应该是[[2,2,2,],[2,2,2,],[2,2,2,],[2,2,2,]],实际结果和我的期望一致

    numpy中argmax怎么用

    3.4、axis=-1

    axis=-1即是反过来看轴,对于三维情况axis=-1axis=2一致

    numpy中argmax怎么用

    其他
    对于二维情况axis=-1anxis=1一致
    对于一维情况axis=0anxis=-1一致

    四、Reference

    https://blog.csdn.net/weixin_39190382/article/details/105854567

    https://www.cnblogs.com/zhouyang209117/p/6512302.html

    PS:补充

    对一个一维向量

    import numpy as npa = np.array([3, 1, 2, 4, 6, 1])b=np.argmax(a)#取出a中元素最大值所对应的索引,此时最大值位6,其对应的位置索引值为4,(索引值默认从0开始)print(b)#4

    对2维向量(通常意义下的矩阵)a[][]

    import numpy as npa = np.array([[1, 5, 5, 2],              [9, 6, 2, 8],              [3, 7, 9, 1]])b=np.argmax(a, axis=0)#对二维矩阵来讲a[0][1]会有两个索引方向,第一个方向为a[0],默认按列方向搜索最大值#a的第一列为1,9,3,最大值为9,所在位置为1,#a的第一列为5,6,7,最大值为7,所在位置为2,#此此类推,因为a有4列,所以得到的b为1行4列,print(b)#[1 2 2 1] c=np.argmax(a, axis=1)#现在按照a[0][1]中的a[1]方向,即行方向搜索最大值,#a的第一行为1,5,5,2,最大值为5(虽然有2个5,但取第一个5所在的位置),索引值为1,#a的第2行为9,6,2,8,最大值为9,索引值为0,#因为a有3行,所以得到的c有3个值,即为1行3列print(c)#[1 0 2]

    对于三维矩阵a[0][1][2],情况最为复制,但在lstm中应用最广

    import numpy as npa = np.array([              [                  [1, 5, 5, 2],                  [9, -6, 2, 8],                  [-3, 7, -9, 1]              ],               [                  [-1, 7, -5, 2],                  [9, 6, 2, 8],                  [3, 7, 9, 1]              ],            [                  [21, 6, -5, 2],                  [9, 36, 2, 8],                  [3, 7, 79, 1]              ]            ])b=np.argmax(a, axis=0)#对于三维度矩阵,a有三个方向a[0][1][2]#当axis=0时,是在a[0]方向上找最大值,即两个矩阵做比较,具体#(1)比较3个矩阵的第一行,即拿[1, 5, 5, 2],#                         [-1, 7, -5, 2],#                         [21, 6, -5, 2],#再比较每一列的最大值在那个矩阵中,可以看出第一列1,-2,21最大值为21,在第三个矩阵中,索引值为2#第2列5,7,6最大值为7,在第2个矩阵中,索引值为1.....,最终得出比较结果[2 1 0 0]#再拿出三个矩阵的第二行,按照上述方法,得出比较结果 [0 2 0 0]#一共有三个,所以最终得到的结果b就为3行4列矩阵print(b)#[[0 0 0 0] #[0 1 0 0] #[1 0 1 0]] c=np.argmax(a, axis=1)#对于三维度矩阵,a有三个方向a[0][1][2]#当axis=1时,是在a[1]方向上找最大值,即在列方向比较,此时就是指在每个矩阵内部的列方向上进行比较#(1)看第一个矩阵                  # [1, 5, 5, 2],                  # [9, -6, 2, 8],                  # [-3, 7, -9, 1]#比较每一列的最大值,可以看出第一列1,9,-3最大值为9,,索引值为1#第2列5,-6,7最大值为7,,索引值为2# 因此对第一个矩阵,找出索引结果为[1,2,0,1]#再拿出2个,按照上述方法,得出比较结果 [1 0 2 1]#一共有三个,所以最终得到的结果b就为3行4列矩阵print(c)#[[1 2 0 1] # [1 0 2 1] # [0 1 2 1]] d=np.argmax(a, axis=2)#对于三维度矩阵,a有三个方向a[0][1][2]#当axis=2时,是在a[2]方向上找最大值,即在行方向比较,此时就是指在每个矩阵内部的行方向上进行比较#(1)看第一个矩阵                  # [1, 5, 5, 2],                  # [9, -6, 2, 8],                  # [-3, 7, -9, 1]#寻找第一行的最大值,可以看出第一行[1, 5, 5, 2]最大值为5,,索引值为1#第2行[9, -6, 2, 8],最大值为9,,索引值为0# 因此对第一个矩阵,找出行最大索引结果为[1,0,1]#再拿出2个矩阵,按照上述方法,得出比较结果 [1 0 2 1]#一共有三个,所以最终得到的结果d就为3行3列矩阵print(d)# [[1 0 1]#  [1 0 2]#  [0 1 2]]####################################################################最后一种情况,指定矩阵a[0, -1, :],第一个数字0代表取出第一个矩阵(从前面可以看出a有3个矩阵)为# [1, 5, 5, 2],# [9, -6, 2, 8],# [-3, 7, -9, 1]#第二个数字“-1”代表拿出倒数第一行,为# [-3, 7, -9, 1]#这一行的最大索引值为1 # ,-1,代表最后一行m=np.argmax(a[0, -1, :])print(m)#1 #h,取a的第2个矩阵# [-1, 7, -5, 2],# [9, 6, 2, 8],# [3, 7, 9, 1]#的第3行# [3, 7, 9, 1]#的最大值为9,索引为2h=np.argmax(a[1, 2, :])print(h)#2 g=np.argmax(a[1,:, 2])#g,取出矩阵a,第2个矩阵的第3列为-5,2,9,最大值为9,索引为2print(g)#2

    关于“numpy中argmax怎么用”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

    免责声明:

    ① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

    ② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

    numpy中argmax怎么用

    下载Word文档到电脑,方便收藏和打印~

    下载Word文档

    猜你喜欢

    numpy中argmax怎么用

    这篇文章将为大家详细讲解有关numpy中argmax怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、基本介绍numpy中的argmax简而言之就是返回最大值的索引,当使用np.argmax(axi
    2023-06-26

    numpy中的tensordot怎么使用

    这篇文章主要讲解了“numpy中的tensordot怎么使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“numpy中的tensordot怎么使用”吧!楔子在numpy中有一个tensord
    2023-07-05

    Numpy中shape函数怎么用

    小编给大家分享一下Numpy中shape函数怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!shape函数的功能是读取矩阵的长度,比如shape[0]就是读取
    2023-06-14

    NumPy怎么在Python中使用

    NumPy怎么在Python中使用,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。 介绍NumPy是Python数值计算最重要的基础包,大多数提供科学计算的包都是用NumPy
    2023-06-16

    numpy中怎么使用squeeze函数

    这篇文章主要介绍了numpy中怎么使用squeeze函数,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。reshape函数:改变数组的维数(注意不是shape大小)>>> e=
    2023-06-14

    numpy中reshape函数怎么使用

    在NumPy中,reshape函数用于改变数组的形状。使用reshape函数的语法如下:``` pythonnumpy.reshape(arr, newshape, order='C')```其中,arr是要改变形状的数组,newshape
    2023-09-29

    numpy中np.c_和np.r_怎么使用

    今天小编给大家分享一下numpy中np.c_和np.r_怎么使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。1.np.c_
    2023-07-05

    Numpy中Meshgrid函数怎么使用

    在Numpy中,meshgrid函数用于生成网格点坐标矩阵。它接受一维的数组作为输入,并返回两个二维数组,这两个数组分别对应输入数组的行和列。下面是meshgrid函数的基本用法示例:import numpy as npx = np.a
    Numpy中Meshgrid函数怎么使用
    2024-03-01

    python numpy中linspace函数怎么使用

    本篇内容主要讲解“python numpy中linspace函数怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“python numpy中linspace函数怎么使用”吧!python n
    2023-07-05

    numpy中的linspace函数怎么使用

    今天小编给大家分享一下numpy中的linspace函数怎么使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。numpy提供
    2023-07-05

    numpy中的np.random.random()函数怎么使用

    这篇“numpy中的np.random.random()函数怎么使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“numpy
    2023-07-05

    python中numpy的zeros函数怎么用

    在Python中,可以使用numpy的zeros函数来创建一个指定形状的全零数组。该函数的语法如下:numpy.zeros(shape, dtype=float, order='C')其中:- shape:表示返回数组的形状,可以是一个整数
    2023-10-19

    numpy函数怎么用

    numpy是一个用于进行数值计算和数据分析的Python库,提供了许多强大的函数和工具。常见的numpy函数的介绍:1、np.array(),从列表或元组创建一个数组;2、np.zeros(),创建一个全为0的数组;3、np.ones(),
    numpy函数怎么用
    2023-11-22

    pycharm怎么使用numpy

    要在 pycharm 中使用 numpy,请执行以下步骤:在 project structure 中安装 numpy。导入 numpy 并指定一个别名。使用 np.array() 函数创建 numpy 数组。使用 numpy 函数执行数据操
    pycharm怎么使用numpy
    2024-04-04

    python中怎么导入numpy

    在Python中,可以使用`import`关键字导入`numpy`库:```pythonimport numpy```或者可以使用`as`关键字给`numpy`库起一个别名,通常使用`np`:```pythonimport numpy as
    2023-09-15

    python中怎么用numpy求解多项式

    在Python中,可以使用NumPy库中的`numpy.polyfit()`函数来求解多项式。`numpy.polyfit(x, y, deg)`函数接受三个参数:- `x`:一个包含自变量数据的一维数组。- `y`:一个包含因变量数据的一
    2023-08-18

    Python NumPy的allclose怎么用

    本篇内容介绍了“Python NumPy的allclose怎么用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!numpy 数组及运算扩展库
    2023-06-26

    Numpy的Anaconda怎么使用

    本篇内容主要讲解“Numpy的Anaconda怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Numpy的Anaconda怎么使用”吧!Anaconda的基本用法在windows下安装好A
    2023-06-02

    编程热搜

    • Python 学习之路 - Python
      一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
      Python 学习之路 - Python
    • chatgpt的中文全称是什么
      chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
      chatgpt的中文全称是什么
    • C/C++中extern函数使用详解
    • C/C++可变参数的使用
      可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
      C/C++可变参数的使用
    • css样式文件该放在哪里
    • php中数组下标必须是连续的吗
    • Python 3 教程
      Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
      Python 3 教程
    • Python pip包管理
      一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
      Python pip包管理
    • ubuntu如何重新编译内核
    • 改善Java代码之慎用java动态编译

    目录