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编程实现输入某年某月某日计算出这一天是该年第几天的方法
Apr 18 Python
浅析Python中的赋值和深浅拷贝
Aug 15 Python
python版微信跳一跳游戏辅助
Jan 11 Python
python实现简单淘宝秒杀功能
May 03 Python
对tensorflow 的模型保存和调用实例讲解
Jul 28 Python
详解python读取image
Apr 03 Python
Django保护敏感信息的方法示例
May 09 Python
Python判断字符串是否为空和null方法实例
Apr 26 Python
Pytorch框架实现mnist手写库识别(与tensorflow对比)
Jul 20 Python
matplotlib 使用 plt.savefig() 输出图片去除旁边的空白区域
Jan 05 Python
用基于python的appium爬取b站直播消费记录
Apr 17 Python
Python实现文本文件拆分写入到多个文本文件的方法
Apr 18 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
哪吒敖丙传:新人物二哥敖乙出场 小敖丙奶气十足
2020/03/08 国漫
PHP CURL模拟GET及POST函数代码
2010/04/25 PHP
Laravel 修改默认日志文件名称和位置的例子
2019/10/17 PHP
PHP For循环字母A-Z当超过26个字母时输出AA,AB,AC
2020/02/16 PHP
转换json格式的日期为Javascript对象的函数
2010/07/13 Javascript
基于jquery的无限级联下拉框js插件
2011/10/29 Javascript
原生js 秒表实现代码
2012/07/24 Javascript
Eval and new funciton not the same thing
2012/12/27 Javascript
input标签内容改变的触发事件介绍
2014/06/18 Javascript
javascript中判断json的方法总结
2015/08/27 Javascript
jquery验证手机号是否正确实例讲解
2015/11/17 Javascript
js实现浏览器倒计时跳转页面效果
2016/08/12 Javascript
Javascript Event(事件)的传播与冒泡
2017/01/23 Javascript
用原生JS实现简单的多选框功能
2017/06/12 Javascript
Three.js 再探 - 写一个微信跳一跳极简版游戏
2018/01/04 Javascript
layer插件select选中默认值的方法
2018/08/14 Javascript
vue-cli的工程模板与构建工具详解
2018/09/27 Javascript
JS 验证码功能的三种实现方式
2018/11/26 Javascript
Vue数据驱动表单渲染,轻松搞定form表单
2019/07/19 Javascript
vue中watch和computed为什么能监听到数据的改变以及不同之处
2019/12/27 Javascript
Vue computed 计算属性代码实例
2020/04/22 Javascript
在Python中的Django框架中进行字符串翻译
2015/07/27 Python
Python爬虫番外篇之Cookie和Session详解
2017/12/27 Python
解决Python print 输出文本显示 gbk 编码错误问题
2018/07/13 Python
Python实现删除排序数组中重复项的两种方法示例
2019/01/31 Python
Python 实现两个服务器之间文件的上传方法
2019/02/13 Python
使用python3 实现插入数据到mysql
2020/03/02 Python
使用Keras训练好的.h5模型来测试一个实例
2020/07/06 Python
PyCharm2019.3永久激活破解详细图文教程,亲测可用(不定期更新)
2020/10/29 Python
Cotton On香港网站:澳洲时装连锁品牌
2018/11/01 全球购物
时尚孕妇装:Ingrid & Isabel
2019/05/08 全球购物
物流专业毕业生推荐信范文
2013/11/18 职场文书
2014年村计划生育工作总结
2014/11/14 职场文书
解决Vue+SpringBoot+Shiro跨域问题
2021/06/09 Vue.js
Python+Appium自动化测试的实战
2021/06/30 Python
GPU服务器的多用户配置方法
2022/07/07 Servers