二维数组的Numpy总和

时间:2015-10-28 15:36:38

标签: python arrays numpy

我有两个相对类似的操作,我想知道该怎么做。

第一个更简单。我有像

这样的numpy数组
[[a,b,c,d],
 [e,f,g,h],
 [i,j,k,l]]

我想将列总结为:

[6,12,18,24]

我知道我可以用for循环执行此操作:

for i in range(0,ROW_LENGTH): #ROW_LENGTH defined elsewhere
    listsum[i]=list[:,i].sum()

但这不可能是pythonic方式,可以吗?

第二项任务是我需要做一些类似3D阵列的事情。我假设解决方案与此类似。一个简单的例子是:

[[[a,b,c],[d,e,f],[g,h,i]],
 [[j,k,l],[m,n,o],[p,q,r]],
 [[s,t,u],[v,w,x],[y,z,_]]]

输出应该是:

[[a+j+s,b+k+t,c+l+u],[d+m+v,e+n+w,f+o+x],[g+p+y,h+q+z,i+r+_]]

我希望了解这两种技术对于我掌握python的能力一般来说都是一大福音!

我将在这里链接到一个单独的问题,我要求同一个项目:

1 个答案:

答案 0 :(得分:0)

为了做到这一点,你可以使用numpy的sum方法。

import numpy as np
a = np.array([[1,2,3],[4,5,6],[7,8,9]])
a.sum(axis=0)

应该做的伎俩