话不多说,先上代码,参考博客地址:

https://blog.csdn.net/qq_32166627/article/details/62218072

import numpy as np
import struct
import cv2def loadImageSet(filename):binfile = open(filename, 'rb') # 读取二进制文件buffers = binfile.read()head = struct.unpack_from('>IIII', buffers, 0) # 读取前四个整数,返回一个元组offset = struct.calcsize('>IIII') # 定位到data开始的位置imageNum = head[1] # 拿到图片数量width = head[2]height = head[3]bits = imageNum * width * heightbitsString = '>' + str(bits) + 'B' # fmt格式:'>47040000B'imgs = struct.unpack_from(bitsString, buffers, offset) # 取data数据,返回一个元组binfile.close()imgs = np.reshape(imgs, [imageNum, width * height]) # reshape为[60000,784]型的数组return imgs, headdef loadLabelSet(filename):binfile = open(filename, 'rb') # 读取二进制文件buffers = binfile.read()head = struct.unpack_from('>II', buffers, 0) # 读取label文件前两个整形数labelNum = head[1]offset = struct.calcsize('>II') # 定位到label数据开始的位置numString = '>' + str(labelNum) + 'B' # fmt格式:'>60000B'labels = struct.unpack_from(numString, buffers, offset) # 取label数据binfile.close()labels = np.reshape(labels, [labelNum])return labels, headdef main():train_data_filename = "./datasets/mnist/train-images-idx3-ubyte"train_label_filename = "./datasets/mnist/train-labels-idx1-ubyte"test_data_filename = "./datasets/mnist/t10k-images-idx3-ubyte"test_label_filename = "./datasets/mnist/t10k-labels-idx1-ubyte"imgs, data_head = loadImageSet(train_data_filename)print(type(imgs))print("images_array", imgs)print(imgs.shape)# 随机取出10个图像的像素点数据,可视化来看一看for i in range(10):idx = np.random.randint(6000)pick_one_image = np.reshape(imgs[idx,:],[28,28]) # 某一行的所有列就是一个图片的像素值cv2.imwrite("./datasets/test"+ str(i) + ".jpg", pick_one_image)print("data_head: ", data_head)##### 现在看一看labels数据 ######labels, labels_head = loadLabelSet(train_label_filename)print("labels_head",labels_head)print(type(labels))print("labels_shape",labels.shape)print("label: ", labels[0])if __name__ == "__main__":main()

MNIST数据集下载下来:

  • t10k-images-idx3-ubyte(.gz是压缩,解压后是这个,有些是.idx3,这是二进制,没有什么大问题)
  • t10k-labels-idx1-ubyte
  • train-images-idx3-ubyte
  • train-labels-idx1-ubyte

代码实现功能是:

  • 解析二进制数据,变成Numpy数组
  • 通过OpenCV-Python输出来看看

最后想说,转成Numpy数组以后,就很容易转成Tensorflow的数据填充进来训练手写识别啦。

MNIST二进制数据集探索--基于Numpy处理相关推荐

  1. 利用TCN网络实现MNIST手写体数据集的识别

    利用TCN网络实现MNIST手写体数据集的识别 TCN识别MNIST的GitHub网址 https://github.com/locuslab/TCN 论文来源 https://arxiv.org/p ...

  2. numpy找到矩阵中不同元素的种类_基于NumPy和图像分类的人工神经网络构建

    基于NumPy和图像分类的人工神经网络构建 本文利用NumPy系统在Python中构建人工神经网络,以便为Fruits360数据集执行图像分类应用程序. 本文提及的所有内容(即图像和源代码,不包括Fr ...

  3. MosMedData: 新冠肺炎胸部 CT扫描数据集上基于3D-CNN实现二分类

    MosMedData: 新冠肺炎胸部 CT扫描数据集上基于3D-CNN实现二分类 作者: WangXi2016 日期: 2022.10.27 摘要: 本示例教程使用3D CNN实现CT数据二分类. 1 ...

  4. 高斯贝叶斯(Gaussian Naive Bayes)基于Numpy的python实现

    学了贝叶斯以后,不用SKlearn现成的包,基于numpy自己实现了一下高斯贝叶斯算法.可以按照顺序把代码贴进去,自己跑一下试试. 导入需要的包 import time #调用时间,显示算法运行时间 ...

  5. 计算机视觉(十)——Tensorflow对Mnist手写体数据集做手写体识别

    博文主要内容 分析Mnist手写体数据集 实现手写体识别的原理和代码实现 分析Mnist数据集中一些歧义数据 实验中遇到的一些问题 分析Mnist手写体数据集 MNIST 数据集来自美国国家标准与技术 ...

  6. NLP入门-Task1 数据集探索

    数据集探索 IMDB数据集 下载并处理 IMDB 数据集 index转成文本 THUCNews子集探索 THUCNews子集介绍 数据预处理代码 此部分依据tensorflow教程编写 IMDB数据集 ...

  7. Python基础入门:Task4(day10)Python入门(口袋妖怪数据集探索)--阿里云天池

    Task4 day10 口袋妖怪数据集探索 1.主要函数解释 info() 用于快速浏览数据集信息,行列信息等 df.info()'''<class 'pandas.core.frame.Dat ...

  8. 利用Python进行数据分析(7) pandas基础: Series和DataFrame的简单介绍 一、pandas 是什么 pandas 是基于 NumPy 的一个 Python 数据分析包,主

    利用Python进行数据分析(7) pandas基础: Series和DataFrame的简单介绍 一.pandas 是什么 pandas 是基于 NumPy 的一个 Python 数据分析包,主要目 ...

  9. python数组切片赋值_基于numpy中数组元素的切片复制方法

    代码1: #!/usr/bin/python import numpy as np arr1 = np.arange(10) print(arr1) slice_data = arr1[3:5] pr ...

最新文章

  1. 微信 php 接口 函数,PHP的json_encode函数应用到微信接口有关问题(include \uxxxx will create fail)...
  2. CSS实现各类分栏布局
  3. STM32中NVIC_SystemReset()函数的作用?什么时候用?
  4. Report Service 中数据类型的问题
  5. csuoj 1350: To Add Which?
  6. 聊聊Java中的并发队列中 有界队列和无界队列的区别
  7. Abaqus槽钢杆受力有限元分析
  8. 游戏设计的236个技巧++游戏机制、关卡设计和镜头窍门pdf
  9. 怎么卸载apowerrec_怎么卸载win10自带应用 工具
  10. 微型计算机偏移地址,请高手讲解一下在微机原理里面,偏移地址,段地址,实体地址之间的关系!配合图解更好,谢谢!...
  11. 转载:如果我的生命里可以遇到一个这样的MM.夫复何求!
  12. php word替换换行符,word换行替换
  13. 人人网(cookie登录)
  14. 日志宝:大众也能看懂的Web访问日志数据分析
  15. 洛谷P4568 [JLOI2011] 飞行路线 题解
  16. 什么是大数据系统存储及管理?
  17. linux服务器重启日志,Linux系统最近重启时间、错误日志
  18. 7.6椭圆曲线密码算法
  19. 做人与做事的对立与统一
  20. Incorrect string value: ‘\xE9\xBB\x84\xE8\x93\x89‘ for column ‘name‘ at row 1 MySQL 5.7解决方案

热门文章

  1. 数据结构上机实践第二周项目2- 程序的多文件组织
  2. logistic regression及其Python实现
  3. tensorflow随笔——交叉熵公式推导
  4. 数据结构笔记(六)-- 双向链表
  5. 机器学习:多变量线性回归
  6. mysql实验6答案_SQL 2008课后习题答案 实验6
  7. oracle apex表隐藏,oracle-apex 处理表格形式
  8. mysql 存储过程实际应用,mysql 存储过程应用实例
  9. c++ 字符减去‘0’_字符串为什么减‘0’成整数
  10. 双硬盘 双linux系统同时运行,XP与linux  双硬盘 双启动管理