2013-10-10 131 views
-1

我有這樣的代碼多個算術運算(需要減去從當前先前元素的總和):蟒蛇:爲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 

問題:是否方式寫在Python的方式代碼(喜歡一行)? Thx提前。

+0

你在代碼縮進,似乎被關閉。你能解決它嗎? – mgilson

+0

是的,抱歉 - 它已修復。 – Serenity

回答

0

我認爲你可以得到的總和被更有效地完成至少:

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

這是幾乎 1班輪:

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

我假設你的真實數據arr是不是所有的零 - 否則,總和將是零,你再從零數組減去離開你......和零陣列(這是不是很有趣)的陣列。

+0

它完美的工作。我只是忘記了np.sum,謝謝你的提示。 – Serenity