第二章使用python进行DIY——学习笔记
2.5 手写数字的数据集MNIST
书中代码为
data_file = open("mnist_dataset/mnist_train_100.csv",'r')
#open()打开文件
#r:只读方式避免更改数据或删除数据
#mnist_dataset:文件目录
#mnist_train_100.csv:整个路径
data_list = data_file.readlines()
#文件中所有变量读入变量data_list
#readlines()文件读取内容
data_file.close()
#关闭文件
遇到无法读取.csv文件
2.5.1 书中链接无法下载
当时从网站下载下载数据集,http://yann.lecun.com/exdb/mnist/
下载的格式是.gz格式
需要将官网下载数据转化为.CSV格式,直接将代码放到pycharm中运行即可。
def convert(imgf: object, labelf: object, outf: object, n: object) -> object:
f = open(imgf, "rb")
o = open(outf, "w")
l = open(labelf, "rb")
f.read(16)
l.read(8)
images = []
for i in range(n):
image = [ord(l.read(1))]
for j in range(28 * 28):
image.append(ord(f.read(1)))
images.append(image)
for image in images:
o.write(",".join(str(pix) for pix in image) + "\n")
f.close()
o.close()
l.close()
convert("mnist_dataset/train-images.idx3-ubyte", "mnist_dataset/train-labels.idx1-ubyte","mnist_train.csv", 60000)
#注意修改文件名
convert("mnist_dataset/t10k-images.idx3-ubyte", "mnist_dataset/t10k-labels.idx1-ubyte","mnist_test.csv", 10000)
#注意修改文件名
print("Convert Finished!")
之后便可以将.gz格式转化为.csv格式
2.5.2 jupyter无法读取.csv格式
变代码
import pandas as pd
data_file = pd.read_csv('mnist_train.csv',header=0,encoding="gbk")
print(data_file)
注意:在jupyter中显示的.csv文件是什么样的