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 相关文章推荐
Linux环境下MySQL-python安装过程分享
Feb 02 Python
用Python实现斐波那契(Fibonacci)函数
Mar 25 Python
python 统计代码行数简单实例
May 04 Python
Python语言描述KNN算法与Kd树
Dec 13 Python
Python实现的视频播放器功能完整示例
Feb 01 Python
python pandas 对时间序列文件处理的实例
Jun 22 Python
python面试题之列表声明实例分析
Jul 08 Python
numpy中的meshgrid函数的使用
Jul 31 Python
浅析python,PyCharm,Anaconda三者之间的关系
Nov 27 Python
Python tkinter三种布局实例详解
Jan 06 Python
tensorflow 重置/清除计算图的实现
Jan 19 Python
基于python实现可视化生成二维码工具
Jul 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 论坛采集程序 模拟登陆,抓取页面 实现代码
2009/07/09 PHP
ThinkPHP模板标签eq if 中区分0,null,false的方法
2017/03/24 PHP
php插件Xajax使用方法详解
2017/08/31 PHP
PHP实现浏览器格式化显示XML的方法示例
2019/01/22 PHP
file模式访问网页时iframe高度自适应解决方案
2013/01/16 Javascript
js 获取计算后的样式写法及注意事项
2013/02/25 Javascript
jquery全选/全不选/反选另一种实现方法(配合原生js)
2013/04/07 Javascript
javascript动态添加样式(行内式/嵌入式/外链式等规则)
2013/06/24 Javascript
如何解决ligerUI布局时Center中的Tab高度大小
2015/11/24 Javascript
微信小程序 slider 详解及实例代码
2017/01/10 Javascript
简单实现nodejs上传功能
2017/01/14 NodeJs
基于Require.js使用方法(总结)
2017/10/26 Javascript
jQuery实现文本显示一段时间后隐藏的方法分析
2019/06/20 jQuery
如何在vue中使用video.js播放m3u8格式的视频
2021/02/01 Vue.js
[46:27]DOTA2上海特级锦标赛主赛事日 - 1 胜者组第一轮#2LGD VS MVP.Phx第一局
2016/03/02 DOTA
Python牛刀小试密码爆破
2011/02/03 Python
Python中的Matplotlib模块入门教程
2015/04/15 Python
Django框架中数据的连锁查询和限制返回数据的方法
2015/07/17 Python
python 默认参数问题的陷阱
2016/02/29 Python
python批量修改图片大小的方法
2018/07/24 Python
对python3中pathlib库的Path类的使用详解
2018/10/14 Python
Python使用POP3和SMTP协议收发邮件的示例代码
2019/04/16 Python
python 3.7.4 安装 opencv的教程
2019/10/10 Python
利用setuptools打包python程序的方法步骤
2020/01/18 Python
Python Matplotlib简易教程(小白教程)
2020/07/28 Python
css3实现input输入框颜色渐变发光效果代码
2014/04/02 HTML / CSS
canvas绘制圆角头像的实现方法
2019/01/17 HTML / CSS
致标枪运动员加油稿
2014/02/15 职场文书
应届毕业生应聘自荐信范文
2014/02/26 职场文书
医院义诊活动总结
2014/07/04 职场文书
2015年全国爱眼日活动小结
2015/02/27 职场文书
幼儿园六一儿童节演讲稿
2015/03/19 职场文书
Go 在 MongoDB 中常用查询与修改的操作
2021/05/07 Golang
详解Mysql和Oracle之间的误区
2021/05/18 MySQL
ES6 解构赋值的原理及运用
2021/05/25 Javascript
《火纹风花雪月无双》预告“神秘雇佣兵” 紫发剑客
2022/04/13 其他游戏