理解numpy中的轴(axis)

按照我目前的理解:

一维数组中axis=0很特殊,是沿着行的轴。

二维数组中axis=0是沿着列向下的轴。axis=1是沿着行向右的轴。

多维数组中 axis=0是维度,axis=1是沿着列向下的轴,axis=1是沿着行向右的轴。

axis不会大于等于3。

举例,在spyder里

在In [117]: a
Out[117]: 
array([[36, 3, 5, 11],
 [35, 32, 31, 5],
 [12, 35, 6, 15]])


In [118]: np.sum(a)
Out[118]: 226


In [119]: np.sum(a, axis=1)    # axis=1,计算每行的值,相当于对行进行折叠
Out[119]: array([ 55, 103, 68])


In [120]: np.sum(a, axis=0)  # axis=0,计算每列的值,对列进行折叠。
Out[120]: array([83, 70, 42, 31])


In [122]: a=np.random.randint(3,27,(2,3,4))


In [123]: a
Out[123]: 
array([[[22, 7, 26, 7],
 [12, 18, 16, 24],
 [14, 19, 18, 20]],


 [[12, 6, 14, 13],
 [23, 13, 7, 8],
 [ 7, 25, 22, 24]]])


In [124]: np.sum(a,axis=2)   # axis=2,计算每个维度每行的值,折叠每行
Out[124]: 
array([[62, 70, 71],
 [45, 51, 78]])


In [125]: np.sum(a,axis=0)  # axis=0,计算两个维度相加的值。
Out[125]: 
array([[34, 13, 40, 20],
 [35, 31, 23, 32],
 [21, 44, 40, 44]])


In [126]: np.sum(a,axis=1)  # axis=1,计算每个维度每一列相加的值,折叠每列
Out[126]: 
array([[48, 44, 60, 51],
 [42, 44, 43, 45]])



In [130]: a   #3维4行2列
Out[130]: 
array([[[17, 10],
        [ 4, 16],
        [17, 12],
        [ 6, 10]],

       [[16, 21],
        [23, 25],
        [25,  8],
        [ 6,  4]],

       [[23, 13],
        [ 6, 25],
        [22,  5],
        [22,  8]]])

In [131]: np.sum(a,axis=0)  #计算每个维度相加的值
Out[131]: 
array([[56, 44],
       [33, 66],
       [64, 25],
       [34, 22]])

In [132]: np.sum(a,axis=1)  #计算维度内的列值
Out[132]: 
array([[44, 48],
       [70, 58],
       [73, 51]])

In [133]: np.sum(a,axis=2)  #计算维度内的行值
Out[133]: 
array([[27, 20, 29, 16],
       [37, 48, 33, 10],
       [36, 31, 27, 30]])这里插入代码片
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值