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中__getattr__和 __getattribute__获取属性的用法
Jun 21 Python
python 读写txt文件 json文件的实现方法
Oct 22 Python
Python编程实现及时获取新邮件的方法示例
Aug 10 Python
python使用邻接矩阵构造图代码示例
Nov 10 Python
python编写分类决策树的代码
Dec 21 Python
python微信跳一跳系列之棋子定位像素遍历
Feb 26 Python
Python实现的求解最小公倍数算法示例
May 03 Python
详解python列表(list)的使用技巧及高级操作
Aug 15 Python
python图片二值化提高识别率代码实例
Aug 24 Python
python用requests实现http请求代码实例
Oct 31 Python
关于keras中keras.layers.merge的用法说明
May 23 Python
解决keras模型保存h5文件提示无此目录问题
Jul 01 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
基于文本的留言簿
2006/10/09 PHP
解析PHP SPL标准库的用法(遍历目录,查找固定条件的文件)
2013/06/18 PHP
手把手教你打印出PDF(关于fpdf的简单应用)
2013/06/25 PHP
JS、CSS加载中的小问题探讨
2013/11/26 Javascript
键盘上一张下一张兼容IE/google/firefox等浏览器
2014/01/28 Javascript
Nodejs关于gzip/deflate压缩详解
2015/03/04 NodeJs
js实现兼容IE和FF的上下层的移动
2015/05/04 Javascript
JQuery查找DOM节点的方法
2015/06/11 Javascript
javascript+ajax实现产品页面加载信息
2015/07/09 Javascript
Vue.js每天必学之过滤器与自定义过滤器
2016/09/07 Javascript
vue插件tab选项卡使用小结
2016/10/27 Javascript
Vue.js中用webpack合并打包多个组件并实现按需加载
2017/02/17 Javascript
Angular中使用MathJax遇到的一些问题
2017/12/15 Javascript
CSS3结合jQuery实现动画效果及回调函数的实例
2017/12/27 jQuery
微信小程序实现循环动画效果
2018/07/16 Javascript
如何将百度地图包装成Vue的组件的方法步骤
2019/02/12 Javascript
微信小程序下拉框搜索功能的实现方法
2019/07/31 Javascript
Vuex,iView UI面包屑导航使用扩展详解
2019/11/04 Javascript
微信小程序中data-key属性之数据传输(经验总结)
2020/08/22 Javascript
JavaScript this关键字指向常用情况解析
2020/09/02 Javascript
快速解决element的autofocus失效问题
2020/09/08 Javascript
openlayers 3实现车辆轨迹回放
2020/09/24 Javascript
[01:04:14]VP vs TNC 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
[42:20]Winstrike vs VGJ.S 2018国际邀请赛淘汰赛BO3 第二场 8.23
2018/08/24 DOTA
举例讲解Python中的迭代器、生成器与列表解析用法
2016/03/20 Python
python连接数据库的方法
2017/10/19 Python
python 进制转换 int、bin、oct、hex的原理
2021/01/13 Python
HTML5适合的情人节礼物有纪念日期功能
2021/01/25 HTML / CSS
班级聚会策划书
2014/01/16 职场文书
化学专业毕业生求职信
2014/07/28 职场文书
公司授权委托书格式范文
2014/10/02 职场文书
2016中秋节晚会开场白
2015/11/26 职场文书
详解MySQL中timestamp和datetime时区问题导致做DTS遇到的坑
2021/12/06 MySQL
Python必备技巧之函数的使用详解
2022/04/04 Python
MySQL批量更新不同表中的数据
2022/05/11 MySQL
Flink 侧流输出源码示例解析
2022/09/23 Servers