树莓派python安装xlwt_Python中数据的保存和读取

本文介绍了Python中使用numpy和scipy.io进行数据保存和读取的方法,包括numpy的save、load、savez函数以及scipy.io的savemat和loadmat函数,详细展示了如何在Python和Matlab之间进行数据交互。
摘要由CSDN通过智能技术生成

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

下面分别介绍之:

38dafbbb9f8228fd7a5ccd416681decd.gif

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)

338ec1107fb38c2aa4cffe43d2d64a31.gif

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

63768b0a97c4f8d9d4626dd4d75c9def.png

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

fa39aa35c83840a8a7370d60b9fc96b9.gif

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

3c7a8a7eb2ebb56b0597b99d9610c5b8.gif

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

a61079be752b00cac365a1100fc27350.png

8ad20a57da049578c89dd87cc385e505.png

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

6dcf5f874e95301dc655f44f57d59fc2.gif

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]]

9614c5607fa7e0d834c33f37019296a5.gif

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

1f637529c785dbe803a123f85d029388.png

cd5ad49f262a904d70f40d2873402fe3.png

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

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

98c15b59c3c4145bb41e6fc118264c83.gif

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})

bcbc0e6c2ce07f9e7ecd7ebbeb1629ec.gif

至此 Python 的当前工作路径下就多了 a.mat 和 b.mat 这两个文件.

下面我们用 Matlab 读取这两个文件

b2e349e78f0016ed599759f6db51b63c.png

可以看到 Matlab 已成功读取 Python 生成的 .mat 文件.

我们在来看看 Python 是怎么读取 .mat 文件的。首先来读取刚才生成的 a.mat

cf969fdd790c5a726307c726c12da072.gif

c=io.loadmat('a.mat')

print (type(c))

print (c)

dict

{'__version__': '1.0', '__globals__': [], '__header__': b'MATLAB 5.0 MAT-file Platform: nt, Created on: Tue Aug 4 16:49:28 2015', 'a_matrix': array([[1, 2, 3],[4, 5, 6]])}

79e384fb85eded89608424c623b29669.gif

所以 Python 读取.mat 文件后返回的是个字典,如果要访问里面的值,就要用到关键字,如:

e95e21ce3218962cdcdc4847e899fbd8.gif

print(c['a_matrix'])

[[1 2 3]

[4 5 6]]

64fadf068f666e17ff1f0e6242db41d1.gif

当然了,Python 也可以读取 Matlab 创建的 .mat 文件,从而可以把他们设置在同一工作路径下,在必要的时候进行数据的共享.

732e09cbb2516cd6ef613528d92b608d.png

3bcf4d0fb2d657e3a71ca2251ff4fb08.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值