前言
往往在做机器学习或者深度学习的时候,数据预处理部分需要大量的时间,如果每次debug都重新预处理数据,这样速度非常慢。
我有一个embedding的数据预处理过程,重新跑一次要两分钟,但是将预处理完的数据保存至本地后,导入数据只需要10秒,速度差距非常大。
一、写入与读取
1.Dataframe转csv,xlsx
Dataframe可以考虑转换为csv文件或者excel文件,CSV和excel的区别:
1.CSV是纯文本文件,可以记事本直接打开,excel不是纯文本,excel包含很多格式信息在里面。
2.CSV文件的体积会更小,创建分发读取更加方便,适合存放结构化信息,比如记录的导出,流量统计等等。
3.CSV文件在windows平台默认的打开方式是excel,但是它的本质是一个文本文件。
就把csv当作一种同时兼容记事本和excel的文件吧,如果是计算机专业的,存放数据集啥的,直接考虑csv格式。
代码如下(示例):
import pandas as pd
% csv的保存与读取
df.to_csv("xxx.csv",index=False,sep=',')
df = pd.read_csv('xxx.csv', sheet_name='xxx',)
% excel的保存与读取
df.to_excel("xxx.xlsx",header=None,index=False)
df = pd.read_excel('xxx.xlsx', sheet_name='xxx',)
2.numpy(ndarray转npy)
ndarray数据类型可以使用以下代码保存与读取。list类型数据也可以考虑先转换为numpy保存,读取npy文件之后再转为list。
import numpy as np
np.save('C:/Users/xxx/photos.npy', photos) %保存至本地
photos = np.load('C:/Users/xxx/photos.npy') %读取至本地
3.dict转txt
字典类型数据的保存与读取。
保存:
f = open('C:/Users/xxx/photos.txt','w')
f.write(str(word_index))
f.close()
读取:
f = open('C:/Users/xxx/photos.txt','r')
a = f.read()
word_index = eval(a)
f.close()
总结
本文总结了python常用的三种格式数据的保存与读取方法。