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操作MongoDB详解及实例
May 18 Python
python flask实现分页效果
Jun 27 Python
Python基于回溯法子集树模板解决选排问题示例
Sep 07 Python
浅谈Pycharm中的Python Console与Terminal
Jan 17 Python
初探利用Python进行图文识别(OCR)
Feb 26 Python
python安装requests库的实例代码
Jun 25 Python
在python里创建一个任务(Task)实例
Apr 25 Python
浅谈pytorch 模型 .pt, .pth, .pkl的区别及模型保存方式
May 25 Python
完美解决jupyter由于无法import新包的问题
May 26 Python
Python数据可视化图实现过程详解
Jun 12 Python
python用tkinter开发的扫雷游戏
Jun 01 Python
LeetCode189轮转数组python示例
Aug 05 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中使用sockets:从新闻组中获取文章
2006/10/09 PHP
PHP实现的MongoDB数据库操作类分享
2014/05/12 PHP
php+mysqli使用预处理技术进行数据库查询的方法
2015/01/28 PHP
jquery uaMatch源代码
2011/02/14 Javascript
jquery实现ajax提交form表单的方法总结
2014/03/03 Javascript
jQuery实现平滑滚动的标签分栏切换效果
2015/08/28 Javascript
基于Jquery代码实现手风琴菜单
2015/11/19 Javascript
一种基于浏览器的自动小票机打印实现方案(js版)
2016/07/26 Javascript
js 判断数据类型的几种方法
2017/01/13 Javascript
如何理解Vue的作用域插槽的实现原理
2017/08/19 Javascript
JavaScript创建对象的七种方式全面总结
2017/08/21 Javascript
从setTimeout看js函数执行过程
2017/12/19 Javascript
JavaScript实现计算圆周率到小数点后100位的方法示例
2018/05/08 Javascript
vue+element-ui实现表格编辑的三种实现方式
2018/10/31 Javascript
bootstrap下拉分页样式 带跳转页码
2018/12/29 Javascript
如何将百度地图包装成Vue的组件的方法步骤
2019/02/12 Javascript
使用p5.js临摹动态图片
2019/11/04 Javascript
nuxt 页面路由配置,主页轮播组件开发操作
2020/11/05 Javascript
原生jQuery实现只显示年份下拉框
2020/12/24 jQuery
[01:23:45]DOTA2-DPC中国联赛 正赛 CDEC vs Dragon BO3 第一场 1月22日
2021/03/11 DOTA
详解python3中zipfile模块用法
2018/06/18 Python
Python中的类与类型示例详解
2019/07/10 Python
使用python远程操作linux过程解析
2019/12/04 Python
python中resample函数实现重采样和降采样代码
2020/02/25 Python
PyQt5.6+pycharm配置以及pyinstaller生成exe(小白教程)
2020/06/02 Python
使用PyCharm安装pytest及requests的问题
2020/07/31 Python
Python制作运行进度条的实现效果(代码运行不无聊)
2021/02/24 Python
Web前端绘制0.5像素的几种方法
2017/08/11 HTML / CSS
CSS3 text-shadow实现文字阴影效果
2016/02/24 HTML / CSS
Daisy London官网:英国最大的首饰集团IBB旗下
2019/02/28 全球购物
大学生专业个人学习的自我评价
2013/10/26 职场文书
机电专业毕业生求职信
2013/10/27 职场文书
青蓝工程实施方案
2014/03/27 职场文书
2015年大学迎新晚会总结
2015/07/16 职场文书
导游词之江南周庄
2019/12/06 职场文书
mysql数据库隔离级别详解
2022/06/16 MySQL