使用NumPy读取MNIST数据的实现代码示例

  

<强> NumPy

  

<强>什么是NumPy

  

NumPy是Python语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。主页为https://numpy.org/?/p>   

<>强安装NumPy

  

使用pip工具来安装。

        python - m pip安装numpy      

<强>使用NumPy读取mnist数据

  

如果直接从网络上读取mnist数据,恭喜你,目前国内基本需要一个小时以上。所以建议预先下载mnist数据包。

  

<>强工作环境

  

当前我的工作环境如下:Win10 +蟒蛇。使用Spyder4做为IDE.Anaconda的安装可以参考我的博客。

  

将数据放置到指定目录

  

下图是我当前的工作目录环境,因此在C: \ sus20 \ \用户.spyder-py3-dev目录下,建立子目录财政部。如下图所示:

  

使用NumPy读取MNIST数据的实现代码示例

  

将下载好的四个广州文件拷贝到这个目录下,并将这四个广州文件解压。如下图所示:

  

使用NumPy读取MNIST数据的实现代码示例

  

<强>使用NumPy读取MNIST

  

load_mnist函数返回两个数组,第一个是一个n * m维的NumPy数组(图像),这里的n是样本行数,m是特征列数。训练数据集包含60000个样本,测试数据集包含10000样本。

  

在MNIST数据集中的每张图片由28 * 28个像素点构成,每个像素点用一个灰度值表示。在这里,我们将28 * 28的像素展开为一个一维的行向量,这些行向量就是图片数组里的行(每784个行值,或者说每行就是代表了一张图片)。

  

load_mnist函数返回的第二个数组(标签)包含了相应的目标变量,也就是手写数字的类标签(整数0 - 9)。

        进口操作系统   进口结构   进口numpy np      def load_mnist(路径,类型=盎鸪怠?:   ”““MNIST数据加载路径”“   labels_path=os.path。加入(路径,' % s-labels-idx1-ubyte ' %)      images_path=os.path。加入(路径,' % s-images-idx3-ubyte ' %)      张开(labels_path rb) lbpath:   魔法,n=struct.unpack(在II, lbpath.read (8))   标签=np.fromfile (lbpath dtype=np.uint8)   #读入魔法是一个文件协议的描述,也是调用fromfile方法将字节读入NumPy的阵列之前在文件缓冲中的项数(n)。      张开(images_path rb) imgpath:   魔法,num、行关口=struct.unpack(在IIII, imgpath.read (16))   图像=np.fromfile (imgpath dtype=np.uint8) .reshape (len(标签),784)   返回图片,标签      print (load_mnist (“minst_data”))      

运行代码,将得到如下图结果,说明我们已经正确的从本地读取MNIST数据集。

  

使用NumPy读取MNIST数据的实现代码示例

  

下一步,我们要开始使用TensorFlow读取MNIST数据集。

  

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

使用NumPy读取MNIST数据的实现代码示例