Python中数据集压缩包的读取

除了一些有标准格式(如csv)的数据集是可以直接通过python或numpy、pandas模块读取外,也有很多数据集是无法直接读取的,因为这些文件不是任何标准的格式而是以字节的形式进行存储的,必须编写程序来打开它。

例如:MNIST数据集是机器学习领域中非常经典的一个数据集,由60000个训练样本和10000个测试样本组成,每个样本都是一张28 * 28像素的灰度手写数字图片。

如果还没有从网上下载到本地的数据集,可以使用TensorFlow中的input_data方法下载数据再提取数据,这种方式不用事先下载好数据集,它会自动下载并存放到指定的本地位置。

from tensorflow.examples.tutorials.mnist import imput_data    #导入tensorflow库

导入数据集到mnist实例会自动下载数据

mnist = input_data.read_data_sets('mnist_data')    #mnist_data是指定存放数据的本地文件夹路径,在文件夹中有下载的扩展名(后缀名)是gz的数据集

读取数据需要根据实例内的变量结构(mnist -> mnist.train(或mnist.test) -> mnist.train.images和mnist.train.labels(或mnist.test.images和mnist.test.labels))来获取数据集

x_train = mnist.train.images
y_train = minist.train.labels

查看mnist实例类型
type(mnist)得到的mnist实例的类型是<class 'tensorflow.contrib.learn.python.learn.datasets.base.Datasets'>
查看mnist数据集类型
type(mnist.train)得到的mnist实例中数据集的类型是<class 'tensorflow.contrib.learn.python.learn.datasets.mnist.DataSet'>
type(mnist.train.images)得到的mnist实例中数据的类型是<class 'numpy.ndarray'>

如果已经从网上下载到本地的数据集扩展名(后缀名)是npz压缩包,可以使用numpy中的load方法解压再提取数据:

import numpy as np    #导入numpy库

加载数据集压缩包需要用到numpy的load方法

MNIST = np.load('MNIST.npz')    #加载数据集压缩包到MNIST实例

数据集在压缩包内,使用files命令进行查看压缩包内容

MNIST.files    #实例查看压缩包内的文件(类似解压)

可看到压缩包内的数据集结构

['x_test', 'x_train', 'y_train', 'y_test']

可通过实例的关键字索引读取对应的数据集

x_train = MNIST['x_train']
y_train = MNIST['y_train']

查看MNIST实例类型
type(MNIST)得到MNIST实例的类型是<class 'numpy.lib.npyio.NpzFile'>
查看x_train数据类型
type(mnist['x_train'])得到MNIST实例中数据的类型是<class 'numpy.ndarray'>

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值