返回顶部
首页 > 资讯 > 后端开发 > Python >python读取mnist数据集方法案例详解
  • 432
分享到

python读取mnist数据集方法案例详解

2024-04-02 19:04:59 432人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

mnist手写数字数据集在机器学习中非常常见,这里记录一下用python从本地读取mnist数据集的方法。 数据集格式介绍 这部分内容网络上很常见,这里还是简明介绍一下。网络上下载的

mnist手写数字数据集在机器学习中非常常见,这里记录一下用python从本地读取mnist数据集的方法。

数据集格式介绍

这部分内容网络上很常见,这里还是简明介绍一下。网络上下载的mnist数据集包含4个文件:

在这里插入图片描述

前两个分别是测试集的image和label,包含10000个样本。后两个是训练集的,包含60000个样本。.gz表示这个一个压缩包,如果进行解压的话,会得到.ubyte格式的二进制文件。

在这里插入图片描述

上图是训练集的label和image数据的存储格式。两个文件最开始都有magic number和number of images/items两个数据,有用的是第二个,表示文件中存储的样本个数。另外要注意的是数据的位数,有32位整型和8位整型两种。

读取方法

.gz格式的文件读取

需要import gzip
读取训练集的代码如下:


def load_mnist_train(path, kind='train'): 
'‘'
path:数据集的路径
kind:值为train,代表读取训练集
‘'‘   
    labels_path = os.path.join(path,'%s-labels-idx1-ubyte.gz'% kind)
    images_path = os.path.join(path,'%s-images-idx3-ubyte.gz'% kind)
    #使用gzip打开文件
    with gzip.open(labels_path, 'rb') as lbpath:
	    #使用struct.unpack方法读取前两个数据,>代表高位在前,I代表32位整型。lbpath.read(8)表示一次从文件中读取8个字节
	    #这样读到的前两个数据分别是magic number和样本个数
        magic, n = struct.unpack('>II',lbpath.read(8))
        #使用np.fromstring读取剩下的数据,lbpath.read()表示读取所有的数据
        labels = np.fromstring(lbpath.read(),dtype=np.uint8)
    with gzip.open(images_path, 'rb') as imgpath:
        magic, num, rows, cols = struct.unpack('>IIII',imgpath.read(16))
        images = np.fromstring(imgpath.read(),dtype=np.uint8).reshape(len(labels), 784)
    return images, labels

读取测试集的代码类似。

非压缩文件的读取

如果在本地对四个文件解压缩之后,得到的就是.ubyte格式的文件,这时读取的代码有所变化。


def load_mnist_train(path, kind='train'): 
'‘'
path:数据集的路径
kind:值为train,代表读取训练集
‘'‘   
    labels_path = os.path.join(path,'%s-labels-idx1-ubyte'% kind)
    images_path = os.path.join(path,'%s-images-idx3-ubyte'% kind)
    #不再用gzip打开文件
    with open(labels_path, 'rb') as lbpath:
	    #使用struct.unpack方法读取前两个数据,>代表高位在前,I代表32位整型。lbpath.read(8)表示一次从文件中读取8个字节
	    #这样读到的前两个数据分别是magic number和样本个数
        magic, n = struct.unpack('>II',lbpath.read(8))
        #使用np.fromfile读取剩下的数据
        labels = np.fromfile(lbpath,dtype=np.uint8)
    with gzip.open(images_path, 'rb') as imgpath:
        magic, num, rows, cols = struct.unpack('>IIII',imgpath.read(16))
        images = np.fromfile(imgpath,dtype=np.uint8).reshape(len(labels), 784)
    return images, labels

读取之后可以查看images和labels的长度,确认读取是否正确。

到此这篇关于Python读取mnist数据集方法案例详解的文章就介绍到这了,更多相关python读取mnist数据集方法内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: python读取mnist数据集方法案例详解

本文链接: https://lsjlt.com/news/134590.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • python读取mnist数据集方法案例详解
    mnist手写数字数据集在机器学习中非常常见,这里记录一下用python从本地读取mnist数据集的方法。 数据集格式介绍 这部分内容网络上很常见,这里还是简明介绍一下。网络上下载的...
    99+
    2024-04-02
  • C++基于文件流与armadillo读取mnist示例详解
    前言 发现网上大把都是用python读取mnist的,用C++大都是用opencv读取的,但我不怎么用opencv,因此自己摸索了个使用文件流读取mnist的方法,armadillo...
    99+
    2024-04-02
  • python怎么读取数据集
    Python可以使用多种方式来读取数据集,具体取决于数据集的格式和大小。下面是几种常见的方法:1. 使用内置的`open()`函数来...
    99+
    2023-09-08
    python
  • pytorch dataset实战案例之读取数据集的代码
    目录概述项目结构与代码总结参考资料概述 最近在跑一篇图像修复论文的代码,配置好环境之后开始运行,发现数据一直加载不进去。害,还是得看人家代码咋写的,一句一句看逻辑,准能找出问题。通读...
    99+
    2024-04-02
  • Python rindex()方法案例详解
    描述 Python rindex() 方法返回子字符串最后一次出现在字符串中的索引位置,该方法与 rfind() 方法一样,只不过如果子字符串不在字符串中会报一个...
    99+
    2024-04-02
  • python读取nc数据并绘图的方法实例
    目录获取nc数据的相关信息绘图用matplotlib绘图用Basemap绘图用Cartopy绘图总结获取nc数据的相关信息 from netCDF4 import Dataset i...
    99+
    2024-04-02
  • Python中JSON数据的读取方法
    小编给大家分享一下Python中JSON数据的读取方法,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!Python主要用来做什么Python主要应用于:1、Web开发;2、数据科学研究;3、网络爬虫;4、嵌入式应用开发;5、...
    99+
    2023-06-14
  • pytorch读取csv数据集的方法有哪些
    在PyTorch中读取CSV数据集通常有以下几种方法: 使用Pandas库读取CSV文件,并将其转换为PyTorch张量: im...
    99+
    2024-04-02
  • 详解python读取matlab数据(.mat文件)
    我们都知道,matlab是一个非常好用的矩阵计算分析软件,然额,matlab自带的绘图效果极为锯齿,所以,这里分享一个在python中读取matlab处理后的数据.mat文件。 1...
    99+
    2024-04-02
  • Python 循环读取数据内存不足的解决方案
    看代码吧~ import gc for x in list(locals().keys())[:]: del locals()[x] # del all_s_x, AE, AE_split, x_tick...
    99+
    2022-06-02
    Python 循环读取数据 内存不足
  • Python读取.py文件的方法详解
    python读取.py文件的方法有三种:通过open()函数、pathlib模块以及importlib模块导入模块。这些方法允许读取.py文件的内容并将其用于各种目的,如执行模块或使用其...
    99+
    2024-04-03
    python 读取.py文件
  • Python数据分析案例合集
    案例一、利用税务数据分析美国人群收入情况 ...
    99+
    2023-01-31
    合集 案例 数据
  • python数据XPath使用案例详解
    目录XPathXPath使用方法xpath解析原理:安装lxml案例—58二手房XPath XPath即为XML路径语言(XML Path Language),它是一种用来确定XML...
    99+
    2024-04-02
  • 详细解读Python中解析XML数据的方法
    Python可以使用 xml.etree.ElementTree 模块从简单的XML文档中提取数据。 为了演示,假设你想解析Planet Python上的RSS源。下面是相应的代码: from urll...
    99+
    2022-06-04
    方法 数据 详细
  • Python文件打开读取写入方法实用案例
    目录前言open()方法1. "w",打开一个新的文件并写入内容2. "r",打开文件并读取内容3. "a",以追加内容的...
    99+
    2023-05-19
    python 打开文件读写 python读写文件 python 文件读写
  • PHP实现数据库读取前几条数据的方法详解
    PHP是一种广泛应用于web开发的脚本语言,它具有强大的数据库操作能力。在实际开发中,经常会遇到需要读取数据库中前几条数据的需求。本文将详细介绍PHP如何实现数据库读取前几条数据,并给...
    99+
    2024-04-02
  • python数据分析之文件读取详解
    目录前言:一·Numpy库中操作文件二·Pandas库中操作文件三·补充总结前言: 如果你使用的是Anaconda中的Jupyter,则不需要下载Pands和Numpy库;如果你使用...
    99+
    2024-04-02
  • Python读取postgresql数据库详情
    目录一、读取PostgreSQL数据库二、查询数据一、读取postgresql数据库 (1)首先,我们需要安装 psycopg 驱动。通过 pip 安装最新的 psycopg pip install psycopg2 -...
    99+
    2024-04-02
  • python实现读取excel表格详解方法
    目录一、python读取excel表格数据1、读取excel表格数据常用操作2、xlrd模块主要操作3、读取单元格内容为日期时间的方式4、读取合并单元格的数据二、python写入ex...
    99+
    2024-04-02
  • SpringBootyaml语法与数据读取操作详解
    目录yamlyaml语法规则字面值表示方式:数组表示方式:对象数组格式:对象数组缩略格式:读取yaml数据编写yaml文件读取单一数据读取二级数据读取数组数据读取服务器端口号读取对象...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作