对python中axis的理解

对 p y t h o n 中 a x i s 的 理 解 对python中axis的理解 pythonaxis

axis的实际含义是根据axis指定的维度进行连接,如矩阵m1的维度为(2,3), 那么axis=0就代表了第一个维度‘2’,
因此,将m1和m2按照第一个维度进行连接,得到的新的矩阵就是将第一维度进行相加,其余维度不变,即维度变成了(4,3).
同理,axis=1时就是将矩阵的第二维度进行合并,其余维度不变,即维度变成了(2,6)。

axis的值也可以设置为负数,如axis=-1实际上就是指倒数第一个维度

numpy中axis参数说明:
axis=i,即沿着数组第i个下标变化方向进行操作。遍历完第i个下标所有的变化,求一次值。
axis=(i,j),即沿着数组第i和第j两个下标变化方向`进行操作。


a = np.array(
    [
        [
              [[1, 2, 3, 3], 
               [3, 4, 3, 3]],
            
              [[1, 2, 3, 3], 
               [3, 4, 3, 3]],
    
               [[1, 2, 3, 3], 
                [3, 4, 3, 3]],
         ],  
         [
              [[1, 2, 3, 3], 
               [3, 4, 3, 3]],
            
              [[1, 2, 3, 3], 
               [3, 4, 3, 3]],
    
               [[1, 2, 3, 3], 
                [3, 4, 3, 3]],
         ],
        [
              [[1, 2, 3, 3], 
               [3, 4, 3, 3]],
            
              [[1, 2, 3, 3], 
               [3, 4, 3, 3]],
    
               [[1, 2, 3, 3], 
                [3, 4, 3, 3]],
         ],
        [
              [[1, 2, 3, 3], 
               [3, 4, 3, 3]],
            
              [[1, 2, 3, 3], 
               [3, 4, 3, 3]],
    
               [[1, 2, 3, 3], 
                [3, 4, 3, 3]],
         ],
        [
              [[1, 2, 3, 3], 
               [3, 4, 3, 3]],
            
              [[1, 2, 3, 3], 
               [3, 4, 3, 3]],
    
               [[1, 2, 3, 3], 
                [3, 4, 3, 3]],
         ],
    ]
)
a.shape

在这里插入图片描述

a[x,y,w,z]

数组a有四个轴分别是x,y,w,z轴,这四个轴也分别叫第0轴、第1轴、第2轴和第3轴。

当axis=0,即沿着第0个轴x下标变化的方向进行求和,第0轴降维,得到的shape=(3,2,4)

print(a.sum(axis=0))
print(a.sum(axis=0).shape)

在这里插入图片描述

沿着第0个轴x下标变化的方向进行

a[0][0][0][0]+a[1][0][0][0]+a[2][0][0][0]+a[3][0][0][0]+a[4][0][0][0] = 1+1+1+1+1 = 5
a[0][0][0][0]+a[1][0][0][0]+a[2][0][0][0]+a[3][0][0][0]+a[4][0][0][0] = 1+1+1+1+1 = 5
a[0][0][0][1]+a[1][0][0][1]+a[2][0][0][1]+a[3][0][0][1]+a[4][0][0][1] = 2+2+2+2+2 = 10
a[0][0][0][2]+a[1][0][0][2]+a[2][0][0][2]+a[3][0][0][2]+a[4][0][0][2] = 3+3+3+3+3 = 15
...

当axis=1,即沿着第1个轴y下标变化的方向进行求和,第1轴降维,得到的shape=(5,2,4)

print(a.sum(axis=1))
print(a.sum(axis=1).shape)

在这里插入图片描述

当axis=2,即沿着第1个轴w下标变化的方向进行求和,第2轴降维,得到的shape=(5,3,4)

print(a.sum(axis=2))
print(a.sum(axis=2).shape)

在这里插入图片描述

当axis=3,即沿着第1个轴z下标变化的方向进行求和,第3轴降维,得到的shape=(5,3,2)

print(a.sum(axis=3))
print(a.sum(axis=3).shape)

在这里插入图片描述

当axis=(0, 2, 3),即沿着第0,2,3个轴x,w,z下标变化的方向进行求和,降维,得到的shape=(3),遍历完下标所有的变化,求一次值。

a[5,3,2,4]
a[300,3,32,32]
np.mean(a, axis=(0, 2, 3))
a[x][0][w][z]+a[x][0][w][z]+a[x][0][w][z]+a[x][0][w][z]+a[x][0][w][z] =  5*2*4个数求平均 

a[x][1][w][z]+a[x][1][w][z]+a[x][1][w][z]+a[x][1][w][z]+a[x][1][w][z] =  5*2*4个数求平均

a[x][2][w][z]+a[x][0][w][z]+a[x][2][w][z]+a[x][2][w][z]+a[x][2][w][z]=   5*2*4个数求平均

在这里插入图片描述
在这里插入图片描述

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值