Python中数据的保存和读取
来源:互联网 发布:php $server 编辑:程序博客网 时间:2024/05/07 03:13
在科学计算的过程中,往往需要保存一些数据,也经常需要把保存的这些数据加载到程序中,在 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 npa=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 :
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 <class 'numpy.ndarray'>data_b [[1 2 3] [4 5 6]] the type is <class 'numpy.ndarray'>
我们可以看到这一过程把原本为矩阵的 a
变为数组型了
如果想同时保存 a
b
到同一个文件,我们可以用 np.savez()
函数,具体用法如下:
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
是一个字典,需要通过关键字取出我们需要的数据
下面我们来认识下 scipy.io.savemat()
和 scipy.io.loadmat()
首先我们用 scipy.io.savemat()
创建 .mat
文件,该函数有两个参数,一个文件名和一个包含变量名和取值的字典.
import numpy as npfrom scipy import ioa=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 的当前工作路径下就多了 a.mat
和 b.mat
这两个文件.
下面我们用 Matlab 读取这两个文件
可以看到 Matlab 已成功读取 Python 生成的 .mat
文件.
我们在来看看 Python 是怎么读取 .mat
文件的。 首先来读取刚才生成的 a.mat
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]])}
所以 Python 读取.mat
文件后返回的是个字典,如果要访问里面的值,就要用到关键字,如:
print(c['a_matrix'])[[1 2 3] [4 5 6]]
当然了,Python 也可以读取 Matlab 创建的 .mat
文件,从而可以把他们设置在同一工作路径下,在必要的时候进行数据的共享.
- Python中数据的保存和读取
- WPF中一个简单的数据的保存和读取
- python数据保存/读取
- python中数据的保存
- android-sharedpreferences(数据的保存和读取)
- Android数据的保存和读取
- 常用的spark数据读取和保存
- python读取mysql中数据保存至列表
- Python 以txt格式保存和读取json数据
- Python 以mongo格式保存和读取json数据
- python读取数据分析数据保存数据
- Python中读取,显示,保存图片的方法
- VC中一些保存,读取应用程序数据的方式
- VC中一些保存,读取应用程序数据的方式
- json 解析 读取数据 保存在新的 数组中
- python 读取摄像头数据并保存
- openCV-Python笔记一:图像的读取、显示和保存
- openCV-Python笔记一:图像的读取、显示和保存
- LeetCode之Letter Combinations of a Phone Number
- 1068Parencodings栈
- iOS依赖注入框架系列(二):设置Typhoon
- MFC多文档框架
- 30天了解30种技术系列---(4)Node.js神级开发工具-WebStorm
- Python中数据的保存和读取
- HTTP协议 (三) 压缩
- UIStepper
- dispatchTouchEvent,onUserInteraction,onTouchEvent 调用时序
- Django POST CSRF verification failed. Request aborted
- Android编程权威指南-第十六章挑战练习
- 【SuperMap .Net 组件】三维模型优化 平面分离
- 获取IPhone相册中图片的方法(包括获取所有图片)
- uva1664 并查集