带有元组轴的数组之和:程序到底在做什么?

时间:2017-10-13 10:29:01

标签: python

我不明白这段代码:

D=[[[1,2,3],[4,5,6]],[[7,8,9],[10,11,12]]]
print(np.sum(D, axis=(-2,-1)))

例如,如果能理解轴= -2的总和,那就意味着我们去了尺寸" -2"我们总结了这个维度中的所有元素。

在一般情况下,使用名为A的D维数组,我将:

np.sum(A,axis=d) 

将返回一个矩阵" B"尺寸D-1,例如

B [i1] ... [iD-1] =总和(A [i1] ... [id] ... [iD])

总结在id。

但是有一个轴的元组我不明白这意味着什么?我尝试了一些例子,但我不知道发生了什么。

你能帮帮我吗?

感谢。

1 个答案:

答案 0 :(得分:1)

它意味着按照它们出现的顺序对元组中指定的所有轴进行求和:

>>> np.sum(D, axis=-2)
array([[ 5,  7,  9],
       [17, 19, 21]])
>>> np.sum(_, axis=-1)
array([21, 57])

(-2, -1)从最里面的第二个轴上求和,然后在最后一个轴上求和。

作为第二个例子,请(-3,-2,-1)

>>> np.sum(D, axis=(-3,-2,-1))
78
>>> # explicate summation on (-3,-2,-1)
>>> np.sum(D, axis=-3)
array([[ 8, 10, 12],
       [14, 16, 18]])
>>> np.sum(_, axis=-2)
array([22, 26, 30])
>>> np.sum(_, axis=-1)
78