2017-08-01 13 views
0

私はnumpy配列を持っています: all_data =(10000,3072)ここで、arrayの各セルは32 * 32 * 3イメージのデータです。セル内のデータは次のようにフォーマットされる場合:イメージデータを含むnumpy配列の再構成

np.transpose(np.reshape(image_data,(3, 32,32)), (1,2,0)) 

実像は (plt.imshowまたは任意のこのようなライブラリーを使用して)表示されます。今私はall_dataの形が(10000,32,32,3)であるようにall_dataを変換したい どうすればいいですか?

+0

'image_data'は何ですか? 'all_data'と同じですか、それとも別のものですか? – Atlas7

答えて

1

あなたは、(同じ整形処理がなく、そのまま最初の次元を保つ)、これを試みることができる:

all_data.reshape(10000, 3, 32, 32).transpose(0,2,3,1) 

all_data = np.arange(24).reshape(2,12) 

ターゲットは(2にそれを再構築、 2,2,3):

all_data 
# array([[ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11], 
#  [12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23]]) 
データの

リシェープ一つの要素:

all_data[0].reshape(3,2,2).transpose(1,2,0) 
# array([[[ 0, 4, 8], 
#   [ 1, 5, 9]], 

#  [[ 2, 6, 10], 
#   [ 3, 7, 11]]]) 

はすべて一緒にそれをリシェイプ:

all_data.reshape(2,3,2,2).transpose(0,2,3,1)[0] 
# array([[[ 0, 4, 8], 
#   [ 1, 5, 9]], 

#  [[ 2, 6, 10], 
#   [ 3, 7, 11]]]) 
関連する問題