Python中数据的保存和读取

在科学计算的过程中,往往需要保存一些数据,也经常需要把保存的这些数据加载到程序中,在 Matlab 中我们可以用 save 和 lood 函数很方便的实现。类似的在 Python 中,我们可以用 numpy.save() 和 numpy.load() 函数达到类似的效果,并且还可以用 scipy.io.savemat() 将数据保存为 .mat 格式,用scipy.io.loadmat() 读取 .mat 格式的数据,达到可以和 Matlab 或者Octave 进行数据互动的效果.

下面分别介绍之:

numpy.save() 和 numpy.load()

numpy.save(arg_1,arg_2) #需要两个参数,arg_1 是文件名,arg_2 是要保存的数组. 如:

import numpy as np

a=np.mat('1,2,3;4,5,6')

b=np.array([[1,2,3],[4,5,6]])

np.save('a.npy',a)

np.save('b.npy',b)

这个时候 Python 的当前工作路径下就会多出 a.npy 和 b.npy 两个文件,当然我们也可以给出具体的路径,如 np.save('D:/PythonWork/a.npy',a)


Python中数据的保存和读取_第1张图片
在这里插入图片描述

下面我们把保存的这两个数据文件导入到Python :

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:579817333 
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
data_a=np.load('a.npy')
data_b=np.load('b.npy')
print ('data_a \n',data_a,'\n the type is',type(data_a))
print ('data_b \n',data_a,'\n the type is',type(data_b))
 
data_a
[[1 2 3]
[4 5 6]]
the type is  

data_b
[[1 2 3]
[4 5 6]]
the type is 

我们可以看到这一过程把原本为矩阵的 a 变为数组型了


Python中数据的保存和读取_第2张图片
在这里插入图片描述

Python中数据的保存和读取_第3张图片
在这里插入图片描述

如果想同时保存 a b 到同一个文件,我们可以用 np.savez() 函数,具体用法如下:

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:579817333 
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
np.savez('ab.npz',k_a=a,k_b=b)

c=np.load('ab.npz')

print (c['k_a'])

print (c['k_b']) 

[[1 2 3]

[4 5 6]]
 
[[1 2 3]

[4 5 6]]

这时的 c 是一个字典,需要通过关键字取出我们需要的数据

Python中数据的保存和读取_第4张图片
在这里插入图片描述

Python中数据的保存和读取_第5张图片
在这里插入图片描述

下面我们来认识下 scipy.io.savemat() 和 scipy.io.loadmat()

首先我们用 scipy.io.savemat() 创建 .mat 文件,该函数有两个参数,一个文件名和一个包含变量名和取值的字典.

import numpy as np

from scipy import io

a=np.mat('1,2,3;4,5,6')

b=np.array([[1,1,1],[2,2,2]])

io.savemat('a.mat', {'matrix': a})

io.savemat('b.mat', {'array': b})

你可能感兴趣的:(Python中数据的保存和读取)