我正在使用EMNIST数据集,并具有以下变量X_train
:
import scipy .io
emnist = scipy.io.loadmat(DIRECTORY + '/emnist-letters.mat')
data = emnist ['dataset']
X_train = data ['train'][0, 0]['images'][0, 0]
X_train
的形状是(124800,784)。
现在,我想重塑该数据集的形状,以使其成为形状的3D张量(124800、28、28)。
我可以如下重塑一个数据实例:
X_train[index].reshape((28,28))
但是,以下循环不起作用:
for i in range(len(X_train)):
X_train[i] = X_train[i].reshape((28,28))
我该如何重整数据集的形状以使其具有形状(124800、28、28)?
您可以像这样重塑整个数组:
X_train = X_train.reshape((-1,28,28), order='F')
Matlab使用列的主要顺序(请参见here),因此您需要将顺序指定为order='F'
。