我不確定搜索關鍵字是什麼,所以如果它已經被問到,請鏈接迴應並關閉此主題。如何翻譯/移動一個numpy數組?
我試圖通過一個固定的方向以一個numpy的陣列的非零項移位,例如,想象我有一個二維數組:
0 1 2 0
0 3 0 0
0 0 0 0
0 0 0 0
通過移位它(1,1)將產生下面的數組:
0 0 0 0
0 0 1 2
0 0 3 0
0 0 0 0
比方說,如果非零項超出邊界,他們只是簡單地丟棄。我該怎麼做?
編輯:aparently從這個重複嗎? Shift elements in a numpy array 我真的不明白他們爲什麼是同一個問題,因爲那個人談論的是循環出來的事情,所以它更多的是「滾動」而不是移動。我也喜歡這裏的解決方案,它非常簡單易讀。
再次編輯:修正了一些格式
除邊緣行爲外,您可能正在尋找'np.roll'。你也可以從一個片斷構建一個新的數組。 –
請編輯你的值爲1,2,3而不是2,2,2,這樣我們可以看到你想要什麼樣的換檔,現在可以有很多不同的事情 –
'shift =(1,1);新= np.zeros_like(舊);新的[shift [0]:,shift [1]:] = old [: - shift [0],: - shift [1]]給出或帶來幾個錯誤的錯誤。 –