python:numpy数组的多个算术运算

时间:2013-10-10 07:00:40

标签: python numpy

我有这段代码(需要从当前减去以前元素的总和):

arr = np.zeros((N,M,T))
for it in xrange(T):
     sum_arr = np.zeros((M,N))
     for tt in xrange(it): sum_arr += arr[:,:,tt]
     arr[:,:,it] -= sum_arr

问题:是否可以用pythonic方式编写此代码(更喜欢一行)? Thx提前。

1 个答案:

答案 0 :(得分:2)

我认为你至少可以更有效地完成这笔工作:

arr = np.zeros((N, M, T))
for it in xrange(T):
    arr[:,:,it] -= np.sum(arr[:,:,:it], axis=2)

几乎 1-liner:

for it in xrange(T): arr[:,:,it] -= np.sum(arr[:,:,:it], axis=2)

我假设你的真实数据arr不是全零 - 否则,总和将是一个零数组,然后你从一个零数组中减去你的...和零数组(这不是很有趣。)