全网最详细numpy的argmin与argmax解析(一次性理解np.argmin)

article/2025/9/27 12:55:22

本文以np.argmin()进行讲解,np.argmax()与之类似,np.argmin()求最小值对应的索引,np.argmax()求最大值对应的索引

首先看一下官方注释

def argmin(a, axis=None, out=None):"""Returns the indices of the minimum values along an axis.Parameters----------a : array_likeInput array.axis : int, optionalBy default, the index is into the flattened array, otherwisealong the specified axis.out : array, optionalIf provided, the result will be inserted into this array. It shouldbe of the appropriate shape and dtype.

该函数最重要的参数为axis,np.argmin(a, axis=指定值)求的就是a在指定的第axis维度(轴)上的最小值对应的位置索引,若a中在指定轴上有多个最小值,则返回第一个最小值的索引,axis的取值范围就是数据维数的取值范围。其中a可能为list类型,也可能为array类型

1.若参数a为list类型

np.argmin(a)返回将a中所有元素全部按照原有顺序拉直摊平之后,第一个最小值在其中的位置,举例说明:

import numpy as nplst1=[1,100,56,78,0]
lst2=[[100,0,5],[3,0,7],[5,0,6]]
print("lst列表中的最小值是:")
print(np.min(lst1))
# 仅有一个最小值的情况
print("lst1列表中最小值的索引是:")
print(np.argmin(lst1))
# 有多个最小值的情况
print("lst2列表中最小值的索引是:")
print(np.argmin(lst2))

结果:

2.若参数a为array类型

如果不设置axis的值,则函数默认将a所有数据平铺成一维数组,然后返回其中最小值在平铺序列中的位置,如:

import numpy as np# 一维数组
a=np.array([3, 1, 2, 4, 6, 1])
bb=np.argmin(a)
print('一维数组不设置axis时默认输出结果:')
print(bb)# 二维数组
a=np.array([[1, 5, 5, 2],[9, 6, 2, 8],[3, 7, 9, 1]])
bb=np.argmin(a)
print('二维数组不设置axis时默认输出结果:')
print(bb)# 三维数组
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]]])bb=np.argmin(a)
print('三维数组不设置axis时默认输出结果:')
print(bb)

结果为:

 也就是说如果对于array类型的变量a,在应用np.argmin(a)时返回值仅为一个数,返回的是a中所有元素的最小值在平铺a之后的序列中的位置。

(1)一维数组

返回array中数值最小数的下标,默认将输入array视作一维,出现相同的最小,返回第一次出现的

import numpy as np
a=np.array([3, 1, 2, 4, 6, 1])
bb=np.argmin(a)
print(bb)    # bb的值为1

(2)二维数组 

二维数组(m*n)假设有m行n列,则每个元素的索引一般写作a[i][j],其中i=0,1,...m-1,j=0,1,...n-1,i代表元素在第0维上的位置,j代表元素在第1维上的位置。返回值类型为array类型,返回值的长度与第axis维度的各个数据的长度一致。

axis=0,对第0维进行分析:比较j取同一值时,不同的i所指向的元素之间的大小关系,并返回最小值在第axis维度上的索引,返回值是长度为n的一维数组;

axis=1,对第1维进行分析:比较i取同一值时,不同的j所指向的元素之间的大小关系,并返回最小值在第axis维度上的索引,返回值是长度为m的一维数组;

举例说明(m=3,n=4):

a=np.array([[1, 5, 5, 2],[9, 6, 2, 8],[3, 7, 9, 1]])
bb=np.argmin(a,axis=0)    # 当axis=0时,表示返回列方向上数值最大值下标
cc=np.argmin(a,axis=1)    # 当axis=1时,表示返回行方向上数值最大值下标
print('axis=0的结果为:')
print(bb) # bb为[0 0 1 2]
print('axis=1的结果为:')
print(cc) # cc为[0 2 3]

结果为:

 (3)三维数组

三维数组(m*n*z)假设第0维长度为m,第一维长度为n,第二维长度为z,则每个元素的索引一般写作a[i][j][k],其中i=0,1,...m-1,j=0,1,...n-1,k=0,1,...z-1,i代表元素在第0维上的位置,j代表元素在第1维上的位置,k代表元素在第2维上的位置。返回值类型为array类型,返回值的类型与第axis维度的各个数据的类型和维数一致。

axis=0表示对第0维进行比较,当j与k取相同值时,不同的i所对应的值的大小关系,返回其中最小值在第0维上的索引,第0维是m个n*z维的二维数组,所以返回数据的类型为n*z维的二维数组;

axis=1表示对第1维进行比较,当i与k取相同值时,不同的j所对应的值的大小关系,返回其中最小值在第1维上的索引,第1维是n个m*z维的二维数组,所以返回数据的类型为m*z维的二维数组;

axis=2表示对第2维进行比较,当i与j取相同值时,不同的k所对应的值的大小关系,返回其中最小值在第2维上的索引,第2维是z个m*n维的二维数组,所以返回数据的类型为m*n维的二维数组;

举例说明(m=2,n=3,z=4):

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]]])bb=np.argmin(a,axis=0)    # 与bb=np.argmin(a,axis=-3)效果相同
cc=np.argmin(a,axis=1)    # 与cc=np.argmin(a,axis=-2)效果相同
dd=np.argmin(a,axis=2)    # 与dd=np.argmin(a,axis=-1)效果相同
print('axis=0的结果为:')
print(bb)
print('axis=1的结果为:')
print(cc)
print('axis=2的结果为:')
print(dd)

结果为:

 依此类推,对于更高维度的数组,例如np.argmin(a,axis=t)返回的就是该数组a在其它维度取相同值时,而第t维度变化时取到的最小值,返回值类型为原数组a去除掉第t维度后其余维度长度不变所形成的数组类型。


http://chatgpt.dhexx.cn/article/Ju8c4ajK.shtml

相关文章

矩阵的内积和外积,三向量混合积

矩阵的内积指的是矩阵点乘,即矩阵的对应元素相乘;矩阵的外积指的是矩阵的叉乘,即矩阵相乘,比如CA*B,则A的列数要与B的行数一致,例如A为[m,n], B 为[n,k], 则C为 [m,k].三向量混合积的…

矩阵与向量的乘积

下面是定义: Ax的结果会让我们想起之前的线性系统和多元一次方程组 也就是说,向量x在经过矩阵A的变换后,得到了向量B 下面以两种观点来看矩阵与向量的乘积。 row aspect 矩阵的第n行与向量做内积,然后将结果放在第n行 2.colum…

【矩阵论】内积空间与等距变换(2)

内积空间与等距变换之正交补空间与等距变换 一. 正交补空间的定义及概念 1. 正交关系的定义 (1)向量正交于子空间 若某空间V中的向量α垂直于V的子空间W中的任意一个向量,就说该向量α垂直于子空间W。 (2)子空间正交…

【矩阵论】内积空间与等距变换(1)

内积空间与等距变换之基本概念 前面有关于“线性空间与线性变换”的概念主要是对几何空间中的线性运算(数乘和加法运算)进行了推广; 不论我们讨论线性空间的什么性质和定义,其本质都是围绕着线性运算进行展开的。 但是在几何空间…

矩阵分析L3内积空间

一、内积空间的概念 1.概念 两个向量的点乘操作应该算内积空间 2.性质 3.类型 Rn上的标准内积 因为要对应位置相乘,所以后一个转置了一下 Rnn上的内积 同样也是对应位置相乘 Rmn上的内积 转置后再相乘,因为对应 二、向量的长度及夹角 1.向量长度 …

矩阵分析(三)内积空间

根据前面的知识,可知,在线性空间中,向量之间的基本运算只有加法和数乘向量两种运算,而向量的度量在线性空间理论中没有反映,这局限了线性空间理论的应用。在本篇中,我们将借助于内积把度量概念引入到线性空…

矩阵论 内积空间几何表示图解

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接: https://blog.csdn.net/baimafujinji/article/details/6478123 一、内积的定义 例1: (对于实数而言&#xff…

矩阵的各种乘积

矩阵的各种乘积 First Name Last Name Points Jill 1.向量点积。变成一个数。 2.矩阵点积。矩阵的点积是每行每列的点积的矩阵。 Eve 94 John 80 Adam Johnson 67 操作 数学符号 举例 说明 点积(dot product),也称内积(inner product),标量积&am…

矩阵理论——内积空间

内积空间定义 V是 F F F的线性空间的话,对于一种定义的内积运算(运算结果表示为 ( x , y ) , ( x , y ) ∈ F (x,y),(x,y)\in F (x,y),(x,y)∈F),如果能满足四条性质,这个线性空间就是一个内积空间。 (1)共轭对称性&a…

向量内积及其解释

1.向量 向量是一个既有大小又有方向的量,在物理学中又把向量叫作矢量。(与之对应的叫标量,只有大小的量) 一般用一个有向线段来表示向量,如下图: 向量几何表示时,在字母上面加上箭头&#xff…

向量内积的矩阵表示

设x,y 是两个相同个数分量的向量,则 表示x和y的内积。 比如这页书就是这个意思:

点积、叉积、内积、外积【汇总对比】

目录 点积(dot product) 代数定义 几何定义 与内积的关系 叉积(corss product) 定义 几何意义 内积(inner product) 定义 例子 外积(outer product) 定义 与欧几里得内积对比 张量的外积 点积(dot product) 又叫标量积、数量积(scalar product)。它是两个数字序…

向量内积

向量内积 一般指点积; 在数学中,数量积(dot product; scalar product,也称为点积)是接受在实数R上的两个 向量并返回一个实数值 标量的 二元运算。它是 欧几里得空间的标准 内积。 [1] 两个向量a [a1, a2,…, an]和b …

数学中的内积和外积

以下是在向量中的运算,即类似,而不是矩阵中的运算! 内积(inner product, scalar product,dot product) 根据翻译,内积又叫标量积、点积,还叫数量积。是指接受在实数R上的两个向量并返回一个实数值标量的二…

向量内积和矩阵乘积

我们来看一下向量内积和矩阵乘积的相关内容。首先,向量内积可以表示为 这里假设有 x ( x 1 , … , x n ) \pmb{x}(x_1,…,x_n) xx(x1​,…,xn​) 和 y ( y 1 , … , y n ) \pmb{y}(y_1,…,y_n) yy(y1​,…,yn​) 两个向量。此时,如式 (1.1) 所示&am…

矩阵的内积和外积

矩阵外积与内积 CareChere 于 2017-11-10 10:04:34 发布 117178 收藏 126 分类专栏: 数值基础 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接: https://blog…

向量内积、矩阵内积以及其性质

向量内积、矩阵内积以及其性质 原稿:http://www.docin.com/p-349594275.html 根据矩阵内积的限制可以知道,binary box function特征与图像的点积为binary box function所在区域对应的图像区域的亮度之和,从而可以提高点积的计算速度。 广告阶…

矩阵外积与内积

一个行向量乘以一个列向量称作向量的内积,又叫作点积,结果是一个数; 一个列向量乘以一个行向量称作向量的外积,外积是一种特殊的克罗内克积,结果是一个矩阵, 假设和b分别是一个行向量和一个列向量&#xff…

矩阵分析-内积

2. 内积空间 原文:https://gitee.com/fakerlove/matrix 2.0 考试重点例题 https://www.bilibili.com/read/cv3995642重点内容 内积空间的判定/证明 柯西-许瓦兹不等式 施密特正交化(求标准正交基) 正交变换的判定/证明 方程组的最小二…

线性代数笔记(6):内积空间(上)

一、内积的定义 例1: (对于实数而言,是否取共轭都是一样的。但是对于复数而言,为了保证所得之结果大于等于0(这样才能比较大小)就必须取一个共轭) 例2:通常,内积的定义方式并不唯一,…