2017-08-01 52 views
0

我有一個numpy數組: all_data =(10000,3072)其中數組中的每個單元格都是32 * 32 * 3圖像的數據。當在單元中的數據被格式化爲:重塑包含圖像數據的numpy數組

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

顯示真實圖像(使用plt.imshow或任何這樣的文庫) 。現在我想變換all_data,使all_data的形狀是(10000,32,32,3) 我該怎麼做?

+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]]])