2017-04-11 13 views
0

numpy配列の配列に対してローリング連結機能を実装したいと考えています。numpy配列のローリング連結配列

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

次いで、3のウィンドウサイズのため、私の関数が返すべき:私のnumpyの配列は以下である場合、例えば、

[[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

2D形状の配列を保持するためにNaN/some-other-invalid-specifierを貼り付ける場合は、こちらをご覧ください - http://stackoverflow.com/questions/40683601/creating-sliding-windows- -n-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

これは機能します。ありがとう。 –