0

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

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方式编写这段代码(首选一行)?提前谢谢。

4

1 回答 1

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并非全为零 - 否则,总和将是一个零数组,然后您从零数组中减去它,留下......和零数组(这不是很有趣)。

于 2013-10-10T07:32:15.760 回答