【发布时间】:2016-07-13 14:03:53
【问题描述】:
我有一个形状为 (3,12,7,5) 的 numpy 数组。我想得到这个数组第一个轴上所有切片的总和。
data = np.random.randint(low=0, high=8000, size=3*12*7*5).reshape(3,12,7,5)
data[0,...].sum()
data[1,...].sum()
data[2,...].sum()
np.array((data[0,...].sum(), data[1,...].sum(), data[2,...].sum()))
首先,我认为使用np.sum(data, axis=...) 应该可以做到这一点,但事实并非如此。
如何一次性执行此计算。 numpy 的魔法是什么?
【问题讨论】:
-
np.sum(data, axis=...)应该可以工作 -
不幸的是,它没有。我编辑了这个问题。啊!确实如此!
-
我以为是axis=(0,1,2),没有成功。这就是我发布问题的原因。为什么它是轴=(1,2,3)?这不是与 numpy 枚举它的轴的方式相反吗?
-
在添加元组版axis之前,我们曾经做过
data.sum(axis=-1).sum(axis=-1)...。也就是说,只是在欲望轴上重复求和。