当前位置:  开发笔记 > 编程语言 > 正文

详解python中无法正确读取.mat文件的解决办法

在python中导入本地.mat数据文件时,总是无法得到正确的数据。
在python中导入本地.mat数据文件时,总是无法得到正确的数据。

问题代码如下:

from numpy import *import scipy.io

mnist_train = 'D:\Machine Learning\TensorFlow\Softmax Regression\mnist_dataset\mnist_train.mat'mnist_train_labels = 'D:\Machine Learning\TensorFlow\Softmax Regression\mnist_dataset\mnist_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']

以上就是详解python中无法正确读取.mat文件的解决办法的详细内容,更多请关注 第一PHP社区 其它相关文章!

推荐阅读
mobiledu2402851373
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有