经常会碰到reshape函数,但是每次都是走马观花,没有去深究其用法
reshape函数的基本用法如下:
new_array = np.reshape(old_array, new_shape)
其中,old_array是原始的数组,new_shape是新的形状。
在MNIST数据集的示例中,将图像数组变换为四维数组:
x_train = x_train.reshape(x_train.shape[0], 28, 28, 1) / 255.0
x_test = x_test.reshape(x_test.shape[0], 28, 28, 1) / 255.0
这里将图像数组的形状从原来的(60000, 28, 28)改变为(60000, 28, 28, 1),并且将像素值归一化到0到1之间。
reshape函数是在numpy库中提供的非常有用的函数,可以方便地改变数组的形状以满足不同的需求。也可以这样子
new_array = np.reshape(old_array, new_shape, order='C')
a:输入的数组。
newshape:新格式数组的形状。
order:可选范围为{‘C’, ‘F’, ‘A’}。按照order的顺序读取a的元素,并按照索引顺序将元素放到变换后的的数组中。如果不进行order参数的设置,默认参数为C。
参数C:横着读,横着写,优先读/写一行。
参数F:竖着读,竖着写,优先读/写一列。
参数A:所生成的数组的效果与原数组a的数据存储方式有关,如果数据是按照FORTRAN
存储的话,它的生成效果与”F“相同,否则与“C”相同。
返回值:新生成的数组