python numpy存取文件的方式


Posted in Python onApril 01, 2020

 NumPy提供了多种存取数组内容的文件操作函数。保存数组数据的文件可以是二进制格式或者文本格式。二进制格式的文件又分为NumPy专用的格式化二进制类型和无格式类型。

numpy格式的文件可以保存为后缀为(.npy/.npz)格式的文件

1. tofile()和fromfile()

  • tofile()将数组中的数据以二进制格式写进文件
  • tofile()输出的数据不保存数组形状和元素类型等信息
  • fromfile()函数读回数据时需要用户指定元素类型,并对数组的形状进行适当的修改
import numpy as np
# 随机生成12个数字并将其有一维转换成3*4的矩阵形式
a = np.arange(12)
print("一维数组:",a)
a.shape = 3,4
print("3*4的矩阵:",a)
# 将数组中的数据以二进制格式写入到文件
a.tofile('a.bin')
# fromfile在读取numpy文件时需要自己指定数据格式,并且原格式并为保存
b1 = np.fromfile('a.bin', dtype=np.float) # 按照float读取数据
b2 = np.fromfile('a.bin', dtype=np.int) # 按照int读取数据
b3 = np.fromfile('a.bin', dtype=np.int32) # 按照int32读取数据
print('float格式b1:{},\nint格式b2:{},\nint32格式b3:{}'.format(b1,b2,b3))
b3.shape = 3,4
print('b3:',b3)

python numpy存取文件的方式

2. save() 和 load(),savez()

  • NumPy专用的二进制格式保存数据,它们会自动处理元素类型和形状等信息
  • 如果想将多个数组保存到一个文件中,可以使用savez()
  • savez()的第一个参数是文件名,其后的参数都是需要保存的数组,也可以使用关键字参数为数组起名
  • 非关键字参数传递的数组会自动起名为arr_0、arr_1、...。
  • savez()输出的是一个扩展名为npz的压缩文件,其中每个文件都是一个save()保存的npy文件,文件名和数组名相同
  • load()自动识别npz文件,并且返回一个类似于字典的对象,可以通过数组名作为键获取数组的内容
import numpy as np
a = np.arange(12)
a.shape = 3,4
# 将数据存储为npy/npz
np.save('a.npy', a)
np.save('a.npz', a)
c = np.load('a.npy')
print('save-load:',c)
# 存储多个数组
b1 = np.array([[6, 66, 666],[888, 88,8]])
b2 = np.arange(0, 1.0, 0.1)
c2 = np.sin(b2)
np.savez('result.npz', b1,b2,sin_arry = c)
c3 = np.load('result.npz') # npz文件时一个压缩文件
print(c3)
print("数组b1:{}\n数组b2:{}\n数组sin_arry:{}".format(c3['arr_0'],c3['arr_1'],c3['sin_arry']))

python numpy存取文件的方式

 3. savetxt() 和 loadtxt()

  • 读写1维和2维数组的文本文件
  • 可以用它们读写CSV格式的文本文件

用这种方式来对数据进行存储,方便深度学习中, 保存了训练集,验证集,测试集,还包括他们的标签,用这个方式存储起来,要啥加载啥,文件数量大大减少,也不会到处改文件名。算是get到了另外一种好的存储数据的方式

总结

以上所述是小编给大家介绍的python利用numpy存取文件的方式,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Python 相关文章推荐
python使用百度翻译进行中翻英示例
Apr 14 Python
使用Python发送邮件附件以定时备份MySQL的教程
Apr 25 Python
在Python中操作时间之strptime()方法的使用
Dec 30 Python
总结Python编程中函数的使用要点
Mar 20 Python
python发送邮件实例分享
Jul 28 Python
Python实现识别手写数字 简易图片存储管理系统
Jan 29 Python
一份python入门应该看的学习资料
Apr 11 Python
Python subprocess库的使用详解
Oct 26 Python
Django中create和save方法的不同
Aug 13 Python
Python K最近邻从原理到实现的方法
Aug 15 Python
matplotlib基础绘图命令之imshow的使用
Aug 13 Python
最新PyCharm 2020.2.3永久激活码(亲测有效)
Nov 26 Python
100行Python代码实现每天不同时间段定时给女友发消息
Sep 27 #Python
使用Fabric自动化部署Django项目的实现
Sep 27 #Python
Win10+GPU版Pytorch1.1安装的安装步骤
Sep 27 #Python
opencv调整图像亮度对比度的示例代码
Sep 27 #Python
详解Django将秒转换为xx天xx时xx分
Sep 27 #Python
pytorch多GPU并行运算的实现
Sep 27 #Python
Python使用matplotlib 模块scatter方法画散点图示例
Sep 27 #Python
You might like
PHP的异常处理类Exception的使用及说明
2012/06/13 PHP
配置php网页显示各种语法错误
2013/09/23 PHP
CodeIgniter实现更改view文件夹路径的方法
2014/07/04 PHP
php数组键值用法实例分析
2015/02/27 PHP
Symfony2安装第三方Bundles实例详解
2016/02/04 PHP
Yii2框架使用计划任务的方法
2016/05/25 PHP
创建公共调用 jQuery Ajax 带返回值
2012/08/01 Javascript
js获取上传文件大小示例代码
2014/04/10 Javascript
Js实现动态添加删除Table行示例
2014/04/14 Javascript
JS实现在线统计一个页面内鼠标点击次数的方法
2015/02/28 Javascript
JS+CSS实现简易实用的滑动门菜单效果
2015/09/18 Javascript
jQuery的Ajax用户认证和注册技术实例教程(附demo源码)
2015/12/08 Javascript
AngularJS中的Directive自定义一个表格
2016/01/25 Javascript
js实现可键盘控制的简单抽奖程序
2016/07/13 Javascript
深入理解JS DOM事件机制
2016/08/06 Javascript
AngularJS入门教程之路由机制ngRoute实例分析
2016/12/13 Javascript
AngularJS中table表格基本操作示例
2017/10/10 Javascript
微信小程序实现图片上传功能
2018/05/28 Javascript
js中offset,client , scroll 三大元素知识点总结
2019/09/11 Javascript
vue自定义指令实现仅支持输入数字和浮点型的示例
2019/10/30 Javascript
解决qrcode.js生成二维码时必须定义一个空div的问题
2020/07/09 Javascript
django自定义Field实现一个字段存储以逗号分隔的字符串
2014/04/27 Python
Windows下搭建python开发环境详细步骤
2020/07/20 Python
python3.4用函数操作mysql5.7数据库
2017/06/23 Python
python实现名片管理系统项目
2019/04/26 Python
python操作文件的参数整理
2019/06/11 Python
python 实现查找文件并输出满足某一条件的数据项方法
2019/06/12 Python
浅谈pytorch池化maxpool2D注意事项
2020/02/18 Python
python logging.info在终端没输出的解决
2020/05/12 Python
PyQt5多线程防卡死和多窗口用法的实现
2020/09/15 Python
HTML5有哪些新特征
2015/12/01 HTML / CSS
班长竞选演讲稿
2014/04/24 职场文书
弘扬焦裕禄精神走群众路线思想汇报
2014/09/12 职场文书
地陪导游欢迎词
2015/01/26 职场文书
社会实践活动总结
2015/02/05 职场文书
Android Flutter实现图片滑动切换效果
2022/04/07 Java/Android