欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Python ,numpy,pandas, scipy,matplot,opencv中的读取和保存数据的方法

程序员文章站 2022-05-18 19:13:46
...

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)