簡體   English   中英

如何有效地滑動numpy數組?

[英]How to efficiently slide numpy array?

我想滑動一個 ND numpy 數組。 目前,下面的代碼完成了這項工作。

import numpy as np
arr = np.array([np.arange(0,16), np.arange(17,33),np.arange(33,49)])
window_size=4
expected_opt=[arr [:, i:i+window_size]for i in range(0,16,window_size)]

但我很好奇是否有更有效的方法來實現類似的目標。

有人可能會建議1 ,但解決方案給出了不同的輸出。

您正在尋找重塑,而不是滾動:

arr.reshape(arr.shape[0],-1,window_size).transpose(1,0,2)

輸出:

array([[[ 0,  1,  2,  3],
        [17, 18, 19, 20],
        [33, 34, 35, 36]],

       [[ 4,  5,  6,  7],
        [21, 22, 23, 24],
        [37, 38, 39, 40]],

       [[ 8,  9, 10, 11],
        [25, 26, 27, 28],
        [41, 42, 43, 44]],

       [[12, 13, 14, 15],
        [29, 30, 31, 32],
        [45, 46, 47, 48]]])

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM