2013-10-29 14 views
7

私は形状が4次元のnumpy配列(N, N, Q, Q)を持っています。したがって、行および列のインデックス(i, j)が与えられた場合、mat[i,j]QxQです。私は配列の位置を保持しながら4d numpy配列を2d配列に変更する

array([[[[ 0, 1], 
     [ 2, 3]], 

     [[ 4, 5], 
     [ 6, 7]]], 


     [[[ 8, 9], 
     [10, 11]], 

     [[12, 13], 
     [14, 15]]]]) 

あなたはmat[0,0]new_mat[0:2, 0:2]に行くことがわかります

array([[ 0., 1., 4., 5.], 
     [ 2., 3., 6., 7.], 
     [ 8., 9., 12., 13.], 
     [ 10., 11., 14., 15.]]) 

に行く(N*Q, N*Q)ような形状に、この配列を再構築したいです。現在mat.reshape(N*Q, N*Q)mat[0,0]からnew_mat[0:4, 0]になります(これは私が望まないものです)。どのように私はこのような形状を再形成するために、変形またはロール軸または同様のものを使用できますか?私は最終的にimshowとそれをプロットしたい、現在スタックしています。私はそれが簡単だと思う、私はまだそれを考え出していない。

答えて

5

私はそれを理解しました。 np.swapaxes(1, 2)が欠けていました。

答えはmat.swapaxes(1, 2).reshape(N*Q, N*Q)です。

私はあまりにも長い間それを理解しようとせずに投稿するのは馬鹿だと感じていますが、他の人がそれを享受できるように私は残します。

関連する問題