numpy 中数组sum 的用法

来源:互联网 发布:自由风软件 编辑:程序博客网 时间:2024/06/16 22:07


注意以下例子里的消失(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=那个维) 那个维就消失,其他维不变,对消失的维求和

原创粉丝点击