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 相关文章推荐
如何利用Boost.Python实现Python C/C++混合编程详解
Nov 08 Python
python 列表中[ ]中冒号‘:’的作用
Apr 30 Python
django搭建项目配置环境和创建表过程详解
Jul 22 Python
django 做 migrate 时 表已存在的处理方法
Aug 31 Python
如何运行带参数的python脚本
Nov 15 Python
python绘制雪景图
Dec 16 Python
Pytorch 多维数组运算过程的索引处理方式
Dec 27 Python
关于tf.TFRecordReader()函数的用法解析
Feb 17 Python
opencv+python实现鼠标点击图像,输出该点的RGB和HSV值
Jun 02 Python
python 简单的调用有道翻译
Nov 25 Python
python中Array和DataFrame相互转换的实例讲解
Feb 03 Python
python SOCKET编程基础入门
Feb 27 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实现文件安全下载
2006/10/09 PHP
php文件夹与文件目录操作函数介绍
2013/09/09 PHP
教你如何解密 “ PHP 神盾解密工具 ”
2014/06/20 PHP
php实现webservice实例
2014/11/06 PHP
PHP动态页生成静态页的3种常用方法
2014/11/13 PHP
php程序员应具有的7种能力小结
2014/11/27 PHP
解决Laravel 不能创建 migration 的问题
2019/10/09 PHP
如何利用PHP实现上传图片功能详解
2020/09/24 PHP
javascript 主动派发事件总结
2011/08/09 Javascript
js弹窗返回值详解(window.open方式)
2014/01/11 Javascript
使用JavaScript获取地址栏参数的方法
2014/12/19 Javascript
AngularJs Understanding the Model Component
2016/09/02 Javascript
Node.js检测端口(port)是否被占用的简单示例
2016/09/29 Javascript
jQuery Easyui datagrid editor为combobox时指定数据源实例
2016/12/19 Javascript
vuejs实现递归树型菜单组件
2018/01/13 Javascript
基于vue-cli vue-router搭建底部导航栏移动前端项目
2018/02/28 Javascript
Vue 去除路径中的#号
2018/04/19 Javascript
vue实现学生录入系统之添加删除功能
2018/07/11 Javascript
js异步上传多张图片插件的使用方法
2018/10/22 Javascript
详解vue开发中调用微信jssdk的问题
2019/04/16 Javascript
node.js命令行教程图文详解
2019/05/27 Javascript
vue路由守卫及路由守卫无限循环问题详析
2019/09/05 Javascript
Openlayers实现图形绘制
2020/09/28 Javascript
python实现绘制树枝简单示例
2014/07/24 Python
Python实现给qq邮箱发送邮件的方法
2015/05/28 Python
python实现隐马尔科夫模型HMM
2018/03/25 Python
python字典的遍历3种方法详解
2019/08/10 Python
Python实现的爬取豆瓣电影信息功能案例
2019/09/15 Python
python上下文管理的使用场景实例讲解
2021/03/03 Python
意大利独特而优质的家居用品:Fazzini
2018/12/05 全球购物
安卓程序员求职信
2014/02/28 职场文书
《放飞蜻蜓》教学反思
2014/04/27 职场文书
学校安全生产承诺书
2014/05/23 职场文书
工伤事故证明
2014/10/20 职场文书
打架赔偿协议书范本
2014/10/26 职场文书
django上传文件的三种方式
2021/04/29 Python