在Python中添加多维数组的所有元素

在Python中添加多维数组的所有元素,python,numpy,matrix,Python,Numpy,Matrix,我有一个数组A,它是x-x-y-x-z-x-w维的。我想得到一个z维向量,其中v的每个元素是v坐标的控制元素的总和。有没有一种方法可以使用numpy进行w/o循环 下面是我将如何使用循环来完成它 for i in range(z): v[i] = np.sum(A[:,:,i,:]) 通过指定轴参数,可以对轴进行求和;这里您希望保留第三个轴并折叠所有其他轴,因此只需使用axis=(0,1,3): 例如: 通过指定轴参数,可以对轴进行求和;这里您希望保留第三个轴并折叠所有其他轴,因此只需

我有一个数组A,它是x-x-y-x-z-x-w维的。我想得到一个z维向量,其中v的每个元素是v坐标的控制元素的总和。有没有一种方法可以使用numpy进行w/o循环

下面是我将如何使用循环来完成它

for i in range(z):
   v[i] = np.sum(A[:,:,i,:])

通过指定
参数,可以对轴进行求和;这里您希望保留第三个轴并折叠所有其他轴,因此只需使用
axis=(0,1,3)


例如:


通过指定
参数,可以对轴进行求和;这里您希望保留第三个轴并折叠所有其他轴,因此只需使用
axis=(0,1,3)


例如:


到目前为止你有代码吗?我可以用循环来做,但我想知道是否有更标准的方法。你能发布你的
循环版本吗?到目前为止你有代码吗?我可以用循环来做,但我想知道是否有更标准的方法。你能发布你的
循环版本吗?
np.sum(A, axis=(0,1,3))
A = np.arange(24).reshape((2,2,3,2))

# for loop approach
z = A.shape[2]
v = np.empty(z)
for i in range(z):
    v[i] = np.sum(A[:,:,i,:])

v
# array([  76.,   92.,  108.])

# sum over axis
np.sum(A, axis=(0,1,3))
# array([ 76,  92, 108])