2017-08-01 63 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]]])