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爬虫之抓取糗事百科代码分享
Nov 06 Python
python根据给定文件返回文件名和扩展名的方法
Mar 27 Python
Linux下将Python的Django项目部署到Apache服务器
Dec 24 Python
python web.py开发httpserver解决跨域问题实例解析
Feb 12 Python
PyQt5 pyqt多线程操作入门
May 05 Python
Django实战之用户认证(用户登录与注销)
Jul 16 Python
Flask框架WTForm表单用法示例
Jul 20 Python
python3读取图片并灰度化图片的四种方法(OpenCV、PIL.Image、TensorFlow方法)总结
Jul 04 Python
Flask框架模板继承实现方法分析
Jul 31 Python
解决安装pyqt5之后无法打开spyder的问题
Dec 13 Python
Python如何存储数据到json文件
Mar 09 Python
完美解决pycharm 不显示代码提示问题
Jun 02 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
牡丹941资料
2021/03/01 无线电
默默简单的写了一个模板引擎
2007/01/02 PHP
CURL的学习和应用(附多线程实现)
2013/06/03 PHP
教你在header中隐藏php的版本信息
2016/08/10 PHP
总结一些js自定义的函数
2006/08/05 Javascript
JavaScript delete 属性的使用
2009/10/08 Javascript
Javascript的闭包
2009/12/31 Javascript
JavaScript的事件绑定(方便不支持js的时候)
2013/10/01 Javascript
js检测输入内容全为空格的方法
2014/05/03 Javascript
js事件监听器用法实例详解
2015/06/01 Javascript
jQuery中队列queue()函数的实例教程
2016/05/03 Javascript
详解浏览器渲染页面过程
2017/02/09 Javascript
JS基于onclick事件实现单个按钮的编辑与保存功能示例
2017/02/13 Javascript
Vue-Router进阶之滚动行为详解
2017/09/13 Javascript
mui框架移动开发初体验详解
2017/10/11 Javascript
利用nvm管理多个版本的node.js与npm详解
2017/11/02 Javascript
vue组件父子间通信详解(三)
2017/11/07 Javascript
详解javascript中的变量提升和函数提升
2018/05/24 Javascript
Vue动态控制input的disabled属性的方法
2018/06/26 Javascript
Vue中通过Vue.extend动态创建实例的方法
2019/08/13 Javascript
python中assert用法实例分析
2015/04/30 Python
Python删除空文件和空文件夹的方法
2015/07/14 Python
python Django模板的使用方法
2016/01/14 Python
解决Python获取字典dict中不存在的值时出错问题
2018/10/17 Python
使用Python的SymPy库解决数学运算问题的方法
2019/03/27 Python
如何将tensorflow训练好的模型移植到Android (MNIST手写数字识别)
2020/04/22 Python
Python函数必须先定义,后调用说明(函数调用函数例外)
2020/06/02 Python
Python enumerate() 函数如何实现索引功能
2020/06/29 Python
英国Amara家居法国网站:家居装饰,现代装饰和豪华礼品
2016/12/15 全球购物
马来西亚最大的电器网站:Senheng
2017/10/13 全球购物
波兰运动鞋网上商店:e-Sporting
2018/02/16 全球购物
李维斯法国官网:Levi’s法国
2019/07/13 全球购物
作风年建设汇报材料
2014/08/14 职场文书
高中升旗仪式主持词
2015/07/03 职场文书
2016年国陪研修感言
2015/11/18 职场文书
python函数指定默认值的实例讲解
2021/03/29 Python