我正在處理一個數據處理項目,我通常希望將一維numpy數組作爲輸入,並輸出一個等長的數組,其元素是通過處理一定數量的輸入元素生成的。 這是一個相對簡單的問題來解決使用for循環,但我想知道如果numpy有內置的方式做到這一點,我認爲會明顯更快。爲了說明我的目標,設想一次生成一個向量(B)1元素,並且讓當前生成的元素爲元素N(表示爲B [N])。有沒有一種好方法在numpy數組上進行「移動」計算?
說,我想B到被它的元素對應於一個簡單的移動平均線向量A的元素的矢量 我想可以說是
B[i] = AVG(A[(i-N):i]) #N <= i < len(A)
在哪裏我這裏是迭代任何底層循環的索引正在運行,AVG是一個通用函數,用於計算傳遞給它的數字組的平均值。
正如我所說的,使用for循環很容易,但這看起來像一個像numpy這樣的事情應該能夠很容易做到,所以我想我會問我的代碼之前,我的代碼與不到最佳結構。
不幸的是,這需要一個具體的例子來回答。 –
@ J.C。雷濤。這個問題與這個問題無關。 OP正試圖擺脫使用原始Python並改用numpy。 –
你玩過'np.cumsum'和'np.cumprod'這樣的函數嗎? – hpaulj