发布网友 发布时间:2022-04-18 18:48
共2个回答
懂视网 时间:2022-04-18 23:09
在python中导入本地.mat数据文件时,总是无法得到正确的数据。问题代码如下:
from numpy import *import scipy.io mnist_train = 'D:Machine LearningTensorFlowSoftmax Regressionmnist_datasetmnist_train.mat'mnist_train_labels = 'D:Machine LearningTensorFlowSoftmax Regressionmnist_datasetmnist_train_labels.mat'x = scipy.io.loadmat(mnist_train) label = scipy.io.loadmat(mnist_train_labels) print(x.shape)
上段代码输出的结果是(1,1),而对应的数据应是(60000,784)。此时,如果直接输出x,会看到以下结果:
''' [[ {'__version__': '1.0', '__header__': b'MATLAB 5.0 MAT-file, Platform: PCWIN, Created on: Tue Nov 29 12:43:31 2011', 'mnist_train': array([[ 0., 0., 0., ..., 0., 0., 0.], [ 0., 0., 0., ..., 0., 0., 0.], [ 0., 0., 0., ..., 0., 0., 0.], ..., [ 0., 0., 0., ..., 0., 0., 0.], [ 0., 0., 0., ..., 0., 0., 0.], [ 0., 0., 0., ..., 0., 0., 0.]], dtype=float32), '__globals__': []}]] '''
可见,如果本地mat文件包含了额外的信息,则单纯使用scipy.io.loadmat()无法直接读取到所需数据,还应该补充一行对应的代码。
x = scipy.io.loadmat(mnist_train) train_x = x['mnist_train'] label = scipy.io.loadmat(mnist_train_labels) train_label = label['mnist_train_labels']
热心网友 时间:2022-04-18 20:17
读取之后,你需要把他输出出来。
text = f.readline()