Numpy中的张量从2D重塑到3D

问题描述 投票:0回答:1

我正在使用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)?

python-3.x numpy reshape tensor
1个回答
0
投票

您可以像这样重塑整个数组:

X_train = X_train.reshape((-1,28,28), order='F')

Matlab使用列的主要顺序(请参见here),因此您需要将顺序指定为order='F'

© www.soinside.com 2019 - 2024. All rights reserved.