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每次处理固定个数的字符的方法总结
Jan 29 Python
Pyramid添加Middleware的方法实例
Nov 27 Python
python实现自动发送报警监控邮件
Jun 21 Python
django进阶之cookie和session的使用示例
Aug 17 Python
Python中GIL的使用详解
Oct 03 Python
Python基于滑动平均思想实现缺失数据填充的方法
Feb 21 Python
Python字典遍历操作实例小结
Mar 05 Python
Python简单处理坐标排序问题示例
Jul 11 Python
python词云库wordcloud的使用方法与实例详解
Feb 17 Python
在python3中使用shuffle函数要注意的地方
Feb 28 Python
python 操作mysql数据中fetchone()和fetchall()方式
May 15 Python
python中如何设置代码自动提示
Jul 15 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操作xml代码
2010/06/17 PHP
php中的静态变量的基本用法
2014/03/20 PHP
ThinkPHP3.1新特性之对页面压缩输出的支持
2014/06/19 PHP
PHP中使用Memache作为进程锁的操作类分享
2015/03/30 PHP
thinkphp3.2.0 setInc方法 源码全面解析
2018/01/29 PHP
phpinfo无法显示的原因及解决办法
2019/02/15 PHP
JavaScript 判断浏览器是否支持SVG的代码
2013/03/21 Javascript
巧用局部变量提升javascript性能
2014/02/24 Javascript
JavaScript修改作用域外变量的方法
2016/03/25 Javascript
Javascript实现通过选择周数显示开始日和结束日的实现代码
2016/05/30 Javascript
js前端日历控件(悬浮、拖拽、自由变形)
2017/03/02 Javascript
详解vue组件通信的三种方式
2017/06/30 Javascript
微信小程序通过保存图片分享到朋友圈功能
2018/05/24 Javascript
JS实现放烟花效果
2020/03/10 Javascript
详解Vue中的MVVM原理和实现方法
2020/07/15 Javascript
[48:28]完美世界DOTA2联赛循环赛FTD vs Magma第二场 10月30日
2020/10/31 DOTA
C#返回当前系统所有可用驱动器符号的方法
2015/04/18 Python
python实现自动更换ip的方法
2015/05/05 Python
Python检测一个对象是否为字符串类的方法
2015/05/21 Python
Python环境下安装使用异步任务队列包Celery的基础教程
2016/05/07 Python
python的pygal模块绘制反正切函数图像方法
2019/07/16 Python
python实现socket+threading处理多连接的方法
2019/07/23 Python
Django项目使用ckeditor详解(不使用admin)
2019/12/17 Python
PyTorch中的padding(边缘填充)操作方式
2020/01/03 Python
Python实现七个基本算法的实例代码
2020/10/08 Python
SVG实现多彩圆环倒计时效果的示例代码
2017/11/21 HTML / CSS
世界上最大的街头服饰网站:Karmaloop
2017/02/04 全球购物
员工自我鉴定
2013/10/09 职场文书
工业学校毕业生自荐信范文
2014/01/03 职场文书
商铺消防安全责任书
2014/07/29 职场文书
四风专项整治工作情况汇报
2014/10/28 职场文书
运动员入场词
2015/07/18 职场文书
大队委员竞选稿
2015/11/20 职场文书
MySQL 使用自定义变量进行查询优化
2021/05/14 MySQL
Redis可视化客户端小结
2021/06/10 Redis
zabbix如何添加监控主机和自定义监控项
2022/08/14 Servers