2017-04-09 6 views
1

numpy.splitを使用すると、numpy.ndarrayを重複する部分で分割することはできますか?Numpy.splitはオーバーラップ行列ですか?

例:形状のnumpy.ndarray(3,3)を考えると

と私はndarrayにそれを分割したい、形状の(1,1)

numpy.split((3,3),(1,1)) = [(1,1),(1,1),(1,1)] 

しかし、どのような場合によります私はshape(3,2)のnumpy.ndarraysを必要としました。これは、numpy.ndarraysをオーバーラップさせて長さ2のリストを生成できますか?など

enter image description here

+0

'np.arange(9).reshape((3、3))'のような入力を与えて、出力をどのように見せたいかを指定できますか? (また:なぜあなたはこれが欲しいのですか?)私の最初の考えは 'np.lib.index_tricks.as_strided'でしょう – mdurant

+0

@mdurant imageを使って例を追加しました。私は、最初のセットと2番目のセットとの間の滑らかな遷移を生成する方法としてオーバーラップを使用しています。 Ps。私はまた、希望の形を(2,2)から(3,2)に修正しました...混乱を引き起こしたかもしれません。 –

+0

私は自分の投稿にフラグを立てました。どこか他の場所に解決策が見つかりました。 –

答えて

1

私はあなたが見たいものを正確にわからないが、これは、あなたの質問に答えるかもしれない:入力して

:興味深いことに

> arr = np.arange(9, dtype='int64').reshape((3, 3)) 

array([[0, 1, 2], 
     [3, 4, 5], 
     [6, 7, 8]]) 


> np.lib.index_tricks.as_strided(arr, (2, 2, 2, 2), (24, 8, 24, 8), True) 

array([[[[0, 1], 
     [3, 4]], 
     [[1, 2], 
     [4, 5]]], 
     [[[3, 4], 
     [6, 7]], 
     [[4, 5], 
     [7, 8]]]]) 

を、ここにはデータのコピーはありません。 as_stridedの値は、8バイト値と3x3入力に対してのみ正確であることに注意してください。入力の既存の形状/ストライドからそれらを得ることができます。

+0

関数に入力したパラメータのビットを詳しく説明できますか? –

+0

適切にパラメータを設定するには、この投稿からビットを取得することができます:http://stackoverflow.com/a/16788733/3293881 – Divakar

関連する問題