2017-02-14 8 views
3

私はサイズが5000x32x32x3の配列があります。番号5000は画像の数であり、各画像は幅と高さが32x32であり、色チャンネルは3です。numpyでの配列の整形

今度は、データが保存されるように、形の数字の配列5000x3x32x32を作成したいと思います。私は、データを保存することによって何を意味 は次のとおりです。

  1. 結果の配列
  2. で5000個のデータポイントがあるはずの配列の第二次元(3)が正しく、すなわち第二の次元であるすべての要素の色チャネルを決定します0は、赤チャネルに属し、その第2次元は1であり、第2次元が2である緑チャネルに属する。

単にnp.reshape(data,(5000,3,32,32))によって形状を再形成することは、チャネルを保持せずにデータを所望の形状に再整形するだけで機能しません。私はあなたが軸の順列を探している、numpy.transposeはこの仕事を得ることができると思い

+1

あなたがに見たことが/numpy/reference/generated/numpy.swapaxes.html。それは2つの軸の転置によって実行可能でなければならない。 –

+3

実際には、 'np.transpose(data、(0,3,1,2))'はあなたが望むことをする必要があります。 –

+0

@Learningisamessあなたは答えとして書く必要があります。 – Aaron

答えて

3

: `numpy.swapaxes` https://docs.scipy.org/doc:

data = np.transpose(data, (0, 3, 1, 2)) 
+0

ありがとうございます。それは助けになった! – Sarthak