• 技术文章 >后端开发 >Python教程

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

    高洛峰高洛峰2017-03-09 09:20:08原创1724
    在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中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:python .mat文件
    上一篇:python中列表与元组的详细介绍 下一篇:Python用Pandas读CSV文件写到MySQL的方法
    20期PHP线上班

    相关文章推荐

    精选22门好课,价值3725元,开通VIP免费学习!• Python中闭包与lambda的作用域解析• 完全掌握Python中的双下方法• Python解析参数的三种方法详解• 总结分享Python冷门的技巧• python虚拟环境配置与管理
    1/1

    PHP中文网