1

如何在 python / numpy 中对数组上的元素间隔求和?

例如,在 matlab 中可能是这样的:

y= ones(10,20);
y(1:5,:) = 2;
for k = 1: 10
   psum(k) = sum(y((1:3),k));
end

但是 numpy 的 sum 函数不支持“1:3”

谢谢 !

4

2 回答 2

3

大概是这样的:

y = numpy.ones((10, 20))
y[0:5] = 2
psum = y[0:3].sum(axis=0)

一个更简单的例子:

y = numpy.array([2, 6, 7, 3, 4])
print y[1:4].sum()

prints 16,中间三个元素的总和。

于 2012-04-05T13:40:05.307 回答
3

这应该可以解决问题:

>>> y = np.ones((10, 20))
>>> y[0:5, :] = 2
>>> psum = y[0:3, 0:10].sum(axis=0)

请注意,在 Python 中,索引是从零开始的,而结束索引是不包含在内的。

于 2012-04-05T13:46:31.383 回答