我正在使用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)?
答案 0 :(得分:1)
您可以像这样重塑整个数组:
X_train = X_train.reshape((-1,28,28), order='F')
Matlab使用列优先顺序(请参阅here),因此您需要将顺序指定为order='F'
才能获得正确的方向。请参见以下示例的第一个字母(w
):