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使用PyFetion来发送短信的例子
Apr 22 Python
Python中的异常处理学习笔记
Jan 28 Python
Python实现二分查找算法实例
May 26 Python
Django中对通过测试的用户进行限制访问的方法
Jul 23 Python
python 类详解及简单实例
Mar 24 Python
浅谈Python peewee 使用经验
Oct 20 Python
使用Python制作微信跳一跳辅助
Jan 31 Python
删除DataFrame中值全为NaN或者包含有NaN的列或行方法
Nov 06 Python
tensorflow 获取所有variable或tensor的name示例
Jan 04 Python
在Tensorflow中实现leakyRelu操作详解(高效)
Jun 30 Python
PyCharm2019.3永久激活破解详细图文教程,亲测可用(不定期更新)
Oct 29 Python
python_tkinter事件类型详情
Mar 20 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
Fedora下安装php Redis扩展笔记
2014/09/03 PHP
php读取der格式证书乱码解决方法
2015/06/22 PHP
php数据访问之查询关键字
2016/05/09 PHP
PHP链表操作简单示例
2016/10/15 PHP
jquery仿QQ商城带左右按钮控制焦点图片切换滚动效果
2013/06/27 Javascript
jQuery实现ajax调用WCF服务的方法(附带demo下载)
2015/12/04 Javascript
javascript+HTML5 Canvas绘制转盘抽奖
2020/05/16 Javascript
Bootstrap框架实现广告轮播效果
2016/11/28 Javascript
JS实现的RGB网页颜色在线取色器完整实例
2016/12/21 Javascript
canvas绘制爱心的几种方法总结(推荐)
2017/10/31 Javascript
javascript按顺序加载运行js方法
2017/12/01 Javascript
详解React之父子组件传递和其它一些要点
2018/06/25 Javascript
微信小程序的注册页面包含倒计时验证码、获取用户信息
2019/05/22 Javascript
微信小程序 WXML节点信息查询详解
2019/07/29 Javascript
详解Vue-cli3.X使用px2rem遇到的问题
2019/08/09 Javascript
解决jquery validate 验证不通过后验证正确的信息仍残留在label上的方法
2019/08/27 jQuery
es6中reduce的基本使用方法
2019/09/10 Javascript
Vue 组件复用多次自定义参数操作
2020/07/27 Javascript
[08:47]DOTA2每周TOP10 精彩击杀集锦vol.6
2014/06/25 DOTA
Python Tkinter基础控件用法
2014/09/03 Python
Java中重定向输出流实现用文件记录程序日志
2015/06/12 Python
Python 实现 贪吃蛇大作战 代码分享
2016/09/07 Python
python批量导入数据进Elasticsearch的实例
2018/05/30 Python
简单了解Django ORM常用字段类型及参数配置
2020/01/07 Python
python爬虫用mongodb的理由
2020/07/28 Python
Tiqets英国:智能手机上的文化和娱乐门票
2019/07/10 全球购物
泰国在线书店:SE-ED
2020/06/21 全球购物
如何删除一个表里面的重复行
2013/07/13 面试题
什么是用户模式(User Mode)与内核模式(Kernel Mode) ?
2014/07/21 面试题
出国留学介绍信
2014/01/13 职场文书
上课玩手机检讨书
2014/02/08 职场文书
孕妇离婚协议书范本
2014/11/20 职场文书
法定代表人证明书
2014/11/28 职场文书
2015年机关作风和效能建设工作总结
2015/07/23 职场文书
幼儿园音乐教学反思
2016/02/18 职场文书
jupyter notebook保存文件默认路径更改方法汇总(亲测可以)
2021/06/09 Python