numpy 中数组sum 的用法



注意以下例子里的消失(taken)的维  

axis=0

[python]  view plain  copy
  1. >>> import numpy as np  
  2. >>> b=np.arange(24).reshape(2,3,4)  
  3. >>> b  
  4. array([[[ 0,  1,  2,  3],  
  5.         [ 4,  5,  6,  7],  
  6.         [ 8,  91011]],  
  7.   
  8.        [[12131415],  
  9.         [16171819],  
  10.         [20212223]]])  
  11. >>> b.sum(axis=0)  
  12. array([[12141618],  
  13.        [20222426],  
  14.        [28303234]])  

(2,3,4)变为(3,4) 下标2的维消失了。和是怎么计算的呢?看下面b的展开样式:

[python]  view plain  copy
  1. [  
  2.  [  
  3.     [ 0,  1,  2,  3],[ 4,  5,  6,  7],[ 8,  91011]  
  4.  ],  
  5.   
  6.  [  
  7.     [12131415],[16171819],[20212223]  
  8.  ]  
  9. ]  

对照  b.sum(axis=0) 结果 ,很容易看出怎么求和的了吧?  下标2的0维消失,却对下标4的2维的元素求和。


[python]  view plain  copy
  1. <pre name="code" class="python">>>> b.sum(axis=1)  
  2. array([[12151821],  
  3.        [48515457]])  

 (2,3,4)变为(2,4) 下标3的维消失了。和是怎么计算的呢?看下面b的展开样式: 
 

[python]  view plain  copy
  1. [  
  2.  [  
  3.     [ 0,  1,  2,  3],  
  4.     [ 4,  5,  6,  7],  
  5.     [ 8,  91011]  
  6.  ],  
  7.   
  8.  [  
  9.     [12131415],  
  10.     [16171819],  
  11.     [20212223]  
  12.  ]  
  13. ]  

[python]  view plain  copy
  1. >>> b.sum(axis=2)  
  2. array([[ 62238],  
  3.        [547086]])  

(2,3,4)变为(2,3) 下标4的维消失了。和是怎么计算的呢?看下面b的展开样式:

[python]  view plain  copy
  1. [  
  2.  [  
  3.     [ 0,  1,  2,  3],[ 4,  5,  6,  7],[ 8,  91011]  
  4.  ],  
  5.   
  6.  [  
  7.     [12131415],[16171819],[20212223]  
  8.  ]  
  9. ]  
总结:

看出规律了吗?不是是一会按列求和,一会按行求和,这么简单的!sum(axis=那个维) 那个维就消失,其他维不变,对消失的维求和

注意以下例子里的消失(taken)的维  

axis=0

[python]  view plain  copy
  1. >>> import numpy as np  
  2. >>> b=np.arange(24).reshape(2,3,4)  
  3. >>> b  
  4. array([[[ 0,  1,  2,  3],  
  5.         [ 4,  5,  6,  7],  
  6.         [ 8,  91011]],  
  7.   
  8.        [[12131415],  
  9.         [16171819],  
  10.         [20212223]]])  
  11. >>> b.sum(axis=0)  
  12. array([[12141618],  
  13.        [20222426],  
  14.        [28303234]])  
(2,3,4)变为(3,4) 下标2的维消失了。和是怎么计算的呢?看下面b的展开样式:

[python]  view plain  copy
  1. [  
  2.  [  
  3.     [ 0,  1,  2,  3],[ 4,  5,  6,  7],[ 8,  91011]  
  4.  ],  
  5.   
  6.  [  
  7.     [12131415],[16171819],[20212223]  
  8.  ]  
  9. ]  
对照  b.sum(axis=0) 结果 ,很容易看出怎么求和的了吧?  下标2的0维消失,却对下标4的2维的元素求和。

[python]  view plain  copy
  1. <pre name="code" class="python">>>> b.sum(axis=1)  
  2. array([[12151821],  
  3.        [48515457]])  

 (2,3,4)变为(2,4) 下标3的维消失了。和是怎么计算的呢?看下面b的展开样式: 
 

[python]  view plain  copy
  1. [  
  2.  [  
  3.     [ 0,  1,  2,  3],  
  4.     [ 4,  5,  6,  7],  
  5.     [ 8,  91011]  
  6.  ],  
  7.   
  8.  [  
  9.     [12131415],  
  10.     [16171819],  
  11.     [20212223]  
  12.  ]  
  13. ]  


[python]  view plain  copy
  1. >>> b.sum(axis=2)  
  2. array([[ 62238],  
  3.        [547086]])  


(2,3,4)变为(2,3) 下标4的维消失了。和是怎么计算的呢?看下面b的展开样式:

[python]  view plain  copy
  1. [  
  2.  [  
  3.     [ 0,  1,  2,  3],[ 4,  5,  6,  7],[ 8,  91011]  
  4.  ],  
  5.   
  6.  [  
  7.     [12131415],[16171819],[20212223]  
  8.  ]  
  9. ]  

总结:

看出规律了吗?不是是一会按列求和,一会按行求和,这么简单的!sum(axis=那个维) 那个维就消失,其他维不变,对消失的维求和

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值