2017-04-11 52 views
0

我想爲數組的numpy數組實現滾動連接函數。例如,如果我的numpy的陣列如下:numpy數組的滾動連接數組

[[1.0] 
    [1.5] 
    [1.6] 
    [1.8] 
    ... 
    ... 
    [1.2] 
    [1.3] 
    [1.5]] 

然後,爲3的窗口大小,我的函數應該返回:

[[1.0] 
    [1.0 1.5] 
    [1.0 1.5 1.6] 
    [1.5 1.6 1.8] 
    ... 
    ... 
    [1.2 1.3 1.5]] 

輸入陣列可以具有不同的形狀的元件以及。例如,如果輸入的是:

[[1.0] 
[1.5] 
[1.6 1.7] 
[1.8] 
... 
... 
[1.2] 
[1.3] 
[1.5]] 

然後輸出應該是:

[[1.0] 
    [1.0 1.5] 
    [1.0 1.5 1.6 1.7] 
    [1.5 1.6 1.7 1.8] 
    ... 
    ... 
    [1.2 1.3 1.5]] 
+0

輸入將它們連接起來看起來並不像一個數組。 – Divakar

+0

編輯問題 –

+0

如果你願意用NaNs /其他無效說明符來保持2D形狀的數組,請看看這裏 - http://stackoverflow.com/questions/40683601/creating-sliding-windows- of-nan-padded-elements-off-1d-numpy-array – Divakar

回答

1

首先,讓你的數組列表。在numpy中沒有數組的數組。

l = arr.tolist()   #l is a list of arrays 

現在使用列表解析,讓您的元素,並與np.r_

l2 = [np.r_[tuple(l[max(i - n, 0):i])] for i in range(1, len(l)+1)] 
+0

這有效。謝謝。 –