如何在numpy中得到一个n维数组的总和?

时间:2012-12-04 23:17:12

标签: python arrays multidimensional-array numpy

我在NumPy中有一个n维数组。我想计算切片中所有元素的总和。例如:

如果我有以下2x2x2 3D数组,其值为:

z = 1
1 2
3 4

z = 2
5 6
7 8

当我得到z = 1的切片时,我想获得10,而对于z = 2,我想得到26。

我可以将以下内容用于3D空间但是如何在n维空间中使用?

(array.sum(axis = 0)).sum(axis = 0)

2 个答案:

答案 0 :(得分:2)

我认为你已经过度复杂了:

>>> a=(np.arange(8)+1).reshape(2,2,2)
>>> a
array([[[1, 2],
        [3, 4]],

       [[5, 6],
        [7, 8]]])
>>> np.sum(a[0])
10
>>> np.sum(a[1])
26
>>> a[:,0]
array([[1, 2],
       [5, 6]])
>>> np.sum(a[:,0])
14

答案 1 :(得分:1)

i尺寸d切片的arr.take([i], axis=d).sum()切片求和:{{1}}