Numpy数组的max函数用法与理解

        arr_np.max()函数用于求np数组的最大值,如果不指定维度,返回值是np数组的所有数字的最大值。

一维数组

先来看比较简单的情况,建立一个一维np数组arr_1d,求arr_1d的最大值。

import numpy as np
arr_1d=np.array([1,2,3])
print(arr_1d.max())#3

二维数组

二维数组可以求所有数字中的最大值,也可以指定axis求指定方向的最大值。

import numpy as np
arr_2d=np.array([[1,2,3],[4,5,6]])
max=arr_2d.max()
max1=arr_2d.max(axis=0)
max2=arr_2d.max(axis=1)
print(max,max1,max2)#6 [4 5 6] [3 6]

      可以看出,不加任何参数的max()是求所有数字中的最大值。

      对于axis=0的情况,我们首先确定最后结果的形状,arr_2d的形状是(2,3),对第0维求最大值,最后结果的形状就是(3,),可以理解为在原形状的基础上去掉axis指定的维度后的形状,就是最后结果的形状。然后我们看求结果的过程,axis=0其实就是沿着行去求,思考一下第一行在哪,第二行在哪,连起来的方向就是你要沿着这条线求最大值的方向,如下图所示。

       对于axis=1的情况,同样确定最后结果的形状,应用上面的理论,最后结果的形状是(2,)。然后看求结果的过程,axis=1是沿着列求,我们找到第一列,第二列,连起来的方向就是要沿着这条线求最大值的方向,如下图所示。

三维数组

三维数组同样可以使用上面的理论

import numpy as np
arr_3d=np.array([[[1,2,3],[4,5,6]],[[7,8,9],[10,11,12]]])
max=arr_3d.max()
max1=arr_3d.max(axis=0)
max2=arr_3d.max(axis=1)
max3=arr_3d.max(axis=2)
print(max) #12 
print(max1)# [[ 7  8  9],[10 11 12]](2,3)
print(max2)# [[ 4  5  6],[10 11 12]](2,3)
print(max3)# [[ 3  6],[ 9 12]](2,2)

       第一步确定最后结果的形状,原形状是(2,2,3),可以自己求一下对应的三个维度最大值的结果矩阵的形状。然后找对应维度方向的第一组数据,第二组数据,连起来就是要求最大值的方向。这里画出axis等于0的求最大值的方向,如下图所示。axis=1和axis=2和二维数组axis=0和axis=1的情况很像,可以自己想一下。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值