Python ,numpy,pandas, scipy,matplot,opencv中的读取和保存数据的方法
pickle:
这个使用起来特别方便,这里简单提一下,不管是什么类型的数据,都能使用pickle一次性将其存入到文件中去。
import pickle
with open(filepath + filename,'wb') as f:
pickle.dump(data,f)
举个例子:
# filepath = '/home/niuawan'
# filename = 'data.pickle'
则我们可以使用以下代码将我们的数据data倒入到data.pikcle中,当然这里的文件类型是我自己定义的,读者可以根据自己的喜好来改变后缀名,如.txt,要注意的是我们是要将数据写入到文件中,所以我这里使用了‘wb’(二进制写入)的方式写入数据。
import pickle
with open(filepath + filename,'wb') as f:
pickle.dump(data,f)
我们使用pickle.dump将数据存入到文件中。Dump的意思显而易见,就是倒入的意思,也就是将数据导入文件中。
使用以下代码可以将存入的数据导出来:
with open('/home/niuawan/data.pickle','rb') as f:
data = pickle.load|(f)
大家可以注意到以上我都使用了with open() as f: 这样的方法来打开数据,这样打开数据的好处是我们可以在读取完数据之后将文件关闭。当然也可以使用以下方法来打开文件:
f= open('/home/niuawan/data.pickle','rb')
data = pickle.load(f)
f.cloase()
我曾经尝试过用python2的pickle写入数据,用python3的pickle读取数据,但是报错了,所以还是以哪个版本的python写入就以哪个版本的python来读取吧。
numpy:
import numpy as np
np.save(filepath + filename,data)
注意我们需要读入的是ndarray数据。
data = np.load(fileppath + filename)
pandas:
pandas 针对不同类型的文件分别设置了几种不同的读取方式:
如读取txt,csv文件:
可以使用:
data = pd.read_csv(filepath + filename)
如果是excel文件可以使用:
Data= pd.read_excel(filepath + filename)
我这里就简单说一下几个比较重要的吧!
Header:有时候都出来的数据比我们的数据多一行,这时候我们要加入参数header = None,如果数据列与列之间是用一些空格或者tab分开的,可以使用参数delimwhitespace = True来分隔列,如果列与列之间使用一些符号分隔的,可以使用sep参数,如用逗号分隔列,那么可以使用:
data = pd.read_csv(filepath + filename,header = None,sep = ',')
下面说一下pandas的数据存储方式,比如我们要利用pandas将数据写入excel中,可以使用以下代码:
df.to_excel(filepath + filename)
注意我们这里的数据就是df,df是DataFrame的data,而DataFrame是pandas的数据格式。
Scipy中有一种非常实用的数据保存方式:
import scipy.io as sio
sio.savemat(data,filepath + filename)
注意我们这里的data是字典的格式。
导出数据:
data = sio.loadmat(filepath + filename)
Matplot:
Matplot其实就更简单了,我们这里只说一种数据的保存方式吧:
import matplotlib.pyplot as plt
plt.savefig()
当然我们也可以使用:plt.imshow()#或者plt.plot() 看你保存的是图像数据还是fig曲线数据plt.show()会出现一个gui画面,gui中有保存数据的按钮。
Opencv读取图片这里就不多介绍了,主要就是利用cv2.imread()来读取图片。
保存的话可以使用下面的函数:
cv2.imwrite(filepath + filename,image)