我有这段代码(需要从当前减去以前元素的总和):
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提前。
答案 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
不是全零 - 否则,总和将是一个零数组,然后你从一个零数组中减去你的...和零数组(这不是很有趣。)