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脚本将绝对url替换为相对url的教程
Apr 24 Python
pip安装Python库时遇到的问题及解决方法
Nov 23 Python
django实现用户登陆功能详解
Dec 11 Python
用Python实现二叉树、二叉树非递归遍历及绘制的例子
Aug 09 Python
python实现的接收邮件功能示例【基于网易POP3服务器】
Sep 11 Python
jupyter notebook 调用环境中的Keras或者pytorch教程
Apr 14 Python
10张动图学会python循环与递归问题
Feb 06 Python
Python命令行参数argv和argparse该如何使用
Feb 08 Python
Keras保存模型并载入模型继续训练的实现
Feb 20 Python
django如何自定义manage.py管理命令
Apr 27 Python
Python实现byte转integer
Jun 03 Python
python实现层次聚类的方法
Nov 01 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
德生PL990的分析评价
2021/03/02 无线电
用php守护另一个php进程的例子
2015/02/13 PHP
php实现粘贴截图并完成上传功能
2015/05/17 PHP
老生常谈PHP位运算的用途
2017/03/12 PHP
php获取'/'传参的值简单方法
2017/07/13 PHP
PHP时间戳和日期相互转换操作实例小结
2018/12/18 PHP
tp5框架基于ajax实现异步删除图片的方法示例
2020/02/10 PHP
收藏一些不常用,但是有用的代码
2007/03/12 Javascript
使用jQuery轻松实现Ajax的实例代码
2010/08/16 Javascript
jQuery 插件仿百度搜索框智能提示(带Value值)
2013/01/22 Javascript
THREE.JS入门教程(4)创建粒子系统
2013/01/24 Javascript
jquery实现在页面加载的时自动为日期插件添加当前日期
2014/08/20 Javascript
javascript检测是否联网的实现代码
2014/09/28 Javascript
动态加载jQuery的两种方法实例分析
2015/07/17 Javascript
jQuery实现购物车表单自动结算效果实例
2015/08/10 Javascript
javascript基本算法汇总
2016/03/09 Javascript
Vue系列:通过vue-router如何传递参数示例
2017/01/16 Javascript
微信小程序 在线支付功能的实现
2017/03/14 Javascript
在微信小程序中使用mqtt服务的方法
2019/12/13 Javascript
[44:50]DOTA2上海特级锦标赛B组小组赛#2 VG VS Fnatic第二局
2016/02/26 DOTA
[01:20:47]DOTA2-DPC中国联赛 正赛 Ehome vs Magma BO3 第一场 1月19日
2021/03/11 DOTA
Python中if __name__ == "__main__"详细解释
2014/10/21 Python
python制作企业邮箱的爆破脚本
2016/10/05 Python
python实现图片识别汽车功能
2018/11/30 Python
python中如何使用虚拟环境
2020/10/14 Python
CSS3中颜色线性渐变实战
2015/07/18 HTML / CSS
J2EE中常用的名词进行解释
2015/11/09 面试题
后勤人员岗位职责
2013/12/17 职场文书
圣诞节红领巾广播稿
2014/02/03 职场文书
《中彩那天》教学反思
2014/02/22 职场文书
会计岗位职责范本
2014/03/07 职场文书
外贸业务员求职信
2014/06/16 职场文书
教师节倡议书
2014/08/30 职场文书
大学生党员学习焦裕禄精神思想汇报
2014/09/10 职场文书
2015年毕业生自我鉴定模板
2014/09/19 职场文书
吃空饷专项整治方案
2014/10/27 职场文书