2016-06-28 11 views
1

私は、再整理して配置する必要がある3D numpy配列を持っています。それを印刷する場合例えば、私は(3,4,3)の形状であるx=np.array([np.array([np.array([1,0,1]),np.array([1,1,1]),np.array([0,1,0]),np.array([1,1,0])]),np.array([np.array([0,0,1]),np.array([0,0,0]),np.array([0,1,1]),np.array([1,0,0])]),np.array([np.array([1,0,0]),np.array([1,0,1]),np.array([1,1,1]),np.array([0,0,0])])])Numpy 3D配列の整理と再整形

は、私が取得している:

array([[[1, 0, 1], 
     [1, 1, 1], 
     [0, 1, 0], 
     [1, 1, 0]], 

     [[0, 0, 1], 
     [0, 0, 0], 
     [0, 1, 1], 
     [1, 0, 0]], 

     [[1, 0, 0], 
     [1, 0, 1], 
     [1, 1, 1], 
     [0, 0, 0]]]) 

は今、私は同じことを選択することで、(4,3,3)にこの配列を再構築する必要があります各サブアレイのインデックスと、このようなもので終わるためにそれらを一緒に入れて:私はreshapeを試してみました

array([[[1,0,1],[0,0,1],[1,0,0]], 
[[1,1,1],[0,0,0],[1,0,1]], 
[[0,1,0],[0,1,1],[1,1,1]], 
[[1,1,0],[1,0,0],[0,0,0]]] 

、積み重ねないと何のすべての種類は、(私が必要のような配列に配置)働きました。私は手動で行うことができますが、大規模な配列の場合は手動で選択することはできません。

ご協力いただければ幸いです。 ありがとう

+0

'x = np.array([[[1,0,1]、[1,1,1]、... 1,1]、[0,0、 0]]]) ' – hpaulj

答えて

3

swapaxesあなたが望むことをします。それはあなたの入力配列がxで、ご希望の出力がyであれば、ある、そして

np.all(y==np.swapaxes(x, 1, 0)) 

Trueを与える必要があります。

+0

また、おそらく' rollaxis'です。この場合、2つはおそらく同等ですが、より高次元の配列では、他の軸の順番をよりよく保つので、「ロール軸」はしばしば必要なものです。 –

関連する問題