Python基础 - Numpy库中的np.sum(array,axis=0,1,2...)

首先看一下什么叫做维度,一个矩阵的维度大家都知道是二维。包含行和列。以下是三维的:

c = np.array([[[0, 1, 2, 3],
               [4, 5, 6, 7]],
              [[1, 2, 3, 4],
               [5, 6, 7, 8]]])

 查看维度:c.ndim = 3,更简单的,小括号旁有几个中括号 [ 就是几维。

print(c.ndim)   # 3
print(c.shape)  # (2, 2, 4)

定位到某个元素时,c[i][j][k],其中 i 表示第一维,j 表示第二维,k 表示第三维。

axis取多少,就表明在哪个维度上求和。

  • axis=None 表示对所有元素求和。
  • axis=0 表示在第1个维度上求和。
  • axis=1 表示在第2个维度上求和。
  • 以此类推…

axis=0,对 i 进行求和,其余为结果的索引。求和公式为:

s[j,k]=\sum_{i=1}^{N}c[i][j][k]

输出的shape自然也就是去掉 i的,为(j, k),这里就是(2,4)

例如s[1,1]=(1+2)=3,结果正确,其余的可以自己验算。

print(c.sum(axis=0).shape) # (2, 4)
print(c.sum(axis=0))       # 在第1个维度上求和。
# [[ 1  3  5  7]
#  [ 9 11 13 15]]

axis=1,对 j 进行求和,直接把上面的公式中的 i改为 j就行了。求和公式为:

s[i,k]=\sum_{j=1}^{M}c[i][j][k]

输出的shape等于原来的减去j的,也就是(2,4)

print(c.sum(axis=1).shape)  # (2, 4)
print(c.sum(axis=1))        # 在第2个维度上求和。
# [[ 4  6  8 10]
#  [ 6  8 10 12]]

 axis=2,与上面同理。

print(c.sum(axis=2).shape)  # (2, 2)
print(c.sum(axis=2))        # 在第2个维度上求和。
# [[ 6 22]
#  [10 26]]

对三维数组a来说,axis=(0,1,2)也就等于axis=None,对所有元素进行求和。


参考:

https://blog.csdn.net/Cowry5/article/details/80188056

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值