一、
将一个5X20的二维矩阵变为一个5X10X2的三维数据。
import numpy as np
X_test = np.arange(100).reshape(5,20)
print(X_test)
X_test = X_test.reshape([X_test.shape[0], 10, 2])
得到的三维的X_test是5个二维的二维矩阵叠加而成的。
相当于,将原来5行的数据都分别reshape成了10*2的矩阵。
第一个二维矩阵为:X_test = [0, :, :] 第二个二维矩阵为:X_test = [1, :, :]
第三个二维矩阵为:X_test = [2, :, :] 第四个二维矩阵为:X_test = [3, :, :]
第五个二维矩阵为:X_test = [2, :, :]
X_test = X_test.reshape([5,20])
再重新reshape回来后,与原始的X_test数据相同。
二、
X = np.arange(800).reshape(400,2)
x1 = X.reshape([2,20,20])
x2 = x1.reshape([2,400])
这里可以看做,将x1拉伸为一维向量后,再对这个一维向量进行reshape
x3 = x1.reshape([400,2])
x4 = x2.T 可以看到,转置与上面两者的区别,是不等同的