Numpy数组的保存与读取方法


Posted in Python onApril 04, 2018

1. 数组以二进制格式保存

np.save和np.load是读写磁盘数组数据的两个主要函数。默认情况下,数组以未压缩的原始二进制格式保存在扩展名为npy的文件中,以数组a为例

np.save("filename.npy",a)
b = np.load("filename.npy")

利用这种方法,保存文件的后缀名字一定会被置为.npy

2. 存取文本文件

使用 np.savetxt 和 np.loadtxt 只能读写 1 维和 2 维的数组

np.savetxt:将数组写入以某种分隔符隔开的文本文件中

np.loadtxt:指定某种分隔符,将文本文件读入到数组中

np.savetxt("filename.txt",a)
b = numpy.loadtxt("filename.txt", delimiter=',')

3. 保存为二进制文件

使用数组的 tofile 函数可以方便地将数组中数据以二进制的格式写进文件

a.tofile("filename.bin")
b = np.fromfile("filename.bin",dtype = **)

该方法与np.save有几点区别:

tofile函数只能将数组保存为二进制文件,文件后缀名没有固定要求。这种保存方法对数据读取有要求,np.fromfile 需要手动指定读出来的数据的的dtype,如果指定的格式与保存时的不一致,则读出来的就是错误的数据。

tofile函数不能保存当前数据的行列信息,不管数组的排列顺序是C语言格式的还是Fortran语言格式,统一使用C语言格式输出。因此使用 np.fromfile 读出来的数据是一维数组,需要利用reshape指定行列信息。

例如下面的例子所示:

>>> a = np.arange(0,12)
>>> a.shape = 3,4
>>> a
array([[ 0, 1, 2, 3],
    [ 4, 5, 6, 7],
    [ 8, 9, 10, 11]])
>>> a.tofile("a.bin")
>>> b = np.fromfile("a.bin", dtype=np.float) # 按照float类型读入数据
>>> b # 读入的数据是错误的
array([ 2.12199579e-314,  6.36598737e-314,  1.06099790e-313,
     1.48539705e-313,  1.90979621e-313,  2.33419537e-313])
>>> a.dtype # 查看a的dtype
dtype('int32')
>>> b = np.fromfile("a.bin", dtype=np.int32) # 按照int32类型读入数据
>>> b # 数据是一维的
array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11])
>>> b.shape = 3, 4 # 按照a的shape修改b的shape
>>> b
array([[ 0, 1, 2, 3],
    [ 4, 5, 6, 7],
    [ 8, 9, 10, 11]])

以上这篇Numpy数组的保存与读取方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
详细介绍Python函数中的默认参数
Mar 30 Python
python读写ini配置文件方法实例分析
Jun 30 Python
python开发利器之ulipad的使用实践
Mar 16 Python
Python输出带颜色的字符串实例
Oct 10 Python
python学生信息管理系统(完整版)
Apr 05 Python
Python实现繁体中文与简体中文相互转换的方法示例
Dec 18 Python
Python实现语音识别和语音合成功能
Sep 20 Python
Python数组并集交集补集代码实例
Feb 18 Python
浅谈Python中os模块及shutil模块的常规操作
Apr 03 Python
Python 输出详细的异常信息(traceback)方式
Apr 08 Python
python保留格式汇总各部门excel内容的实现思路
Jun 01 Python
解决pycharm安装scrapy DLL load failed:找不到指定的程序的问题
Jun 08 Python
基于Python Numpy的数组array和矩阵matrix详解
Apr 04 #Python
Python基于更相减损术实现求解最大公约数的方法
Apr 04 #Python
Python遍历numpy数组的实例
Apr 04 #Python
基于Python中numpy数组的合并实例讲解
Apr 04 #Python
python实现list由于numpy array的转换
Apr 04 #Python
pyhton列表转换为数组的实例
Apr 04 #Python
Python实现二维数组输出为图片
Apr 03 #Python
You might like
PHP+SQL 注入攻击的技术实现以及预防办法
2010/12/29 PHP
ThinkPHP CURD方法之field方法详解
2014/06/18 PHP
Laravel 5框架学习之Eloquent (laravel 的ORM)
2015/04/08 PHP
php实现用于计算执行时间的类实例
2015/04/18 PHP
PHP实现 APP端微信支付功能
2018/06/22 PHP
PHP常用的类封装小结【4个工具类】
2019/06/28 PHP
收藏一些不常用,但是有用的代码
2007/03/12 Javascript
JQUERY复选框CHECKBOX全选,取消全选
2008/08/30 Javascript
jQuery 使用手册(六)
2009/09/23 Javascript
javascript 面向对象继承
2009/11/26 Javascript
改写一个简单的菜单 弹性大小
2010/12/02 Javascript
jquery实现的3D旋转木马特效代码分享
2015/08/25 Javascript
Vue.js 2.0窥探之Virtual DOM到底是什么?
2017/02/10 Javascript
dts文件中删除一个node或属性的操作方法
2018/08/05 Javascript
JavaScript设计模式之享元模式实例详解
2019/01/17 Javascript
node删除、复制文件或文件夹示例代码
2019/08/13 Javascript
生成无限制的微信小程序码的示例代码
2019/09/20 Javascript
vue组件中传值EventBus的使用及注意事项说明
2020/11/16 Javascript
[05:08]2014DOTA2国际邀请赛 Hao专访复仇的胜利很爽
2014/07/15 DOTA
[57:31]DOTA2-DPC中国联赛 正赛 SAG vs CDEC BO3 第一场 2月1日
2021/03/11 DOTA
Python中字符串对齐方法介绍
2015/05/21 Python
Python 模块EasyGui详细介绍
2017/02/19 Python
pyqt5对用qt designer设计的窗体实现弹出子窗口的示例
2019/06/19 Python
python3用PIL把图片转换为RGB图片的实例
2019/07/04 Python
HTC VIVE美国官网:VR虚拟现实眼镜
2018/02/13 全球购物
Farnell德国:电子元器件供应商
2018/07/10 全球购物
Aurora London官网:奢华、负担得起的皮革手袋
2020/08/01 全球购物
土木工程建筑专业毕业生求职信
2013/10/21 职场文书
行政人员工作职责
2013/12/05 职场文书
项目经理任命书
2014/06/04 职场文书
2015年领班工作总结
2015/04/29 职场文书
2016公司年会主持词
2015/07/01 职场文书
毕业欢送会致辞
2015/07/29 职场文书
Python 循环读取数据内存不足的解决方案
2021/05/25 Python
Html5同时支持多端sdk的小技巧
2021/11/17 HTML / CSS
Qt数据库应用之实现图片转pdf
2022/06/01 Java/Android