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错误处理详解
Sep 28 Python
Python中的作用域规则详解
Jan 30 Python
Python环境变量设置方法
Aug 28 Python
如何用python整理附件
May 13 Python
python实现自动获取IP并发送到邮箱
Dec 26 Python
Python之列表实现栈的工作功能
Jan 28 Python
详解python中的生成器、迭代器、闭包、装饰器
Aug 22 Python
使用Python代码实现Linux中的ls遍历目录命令的实例代码
Sep 07 Python
python 计算方位角实例(根据两点的坐标计算)
Jan 17 Python
Python中if有多个条件处理方法
Feb 26 Python
Python手拉手教你爬取贝壳房源数据的实战教程
May 21 Python
深入浅析python3 依赖倒置原则(示例代码)
Jul 09 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
星际争霸兵种名称对照表
2020/03/04 星际争霸
法兰绒滤网冲泡
2021/03/03 冲泡冲煮
PHP 反射机制实现动态代理的代码
2008/10/22 PHP
php合并数组中相同元素的方法
2014/11/13 PHP
一个简单的php MVC留言本实例代码(必看篇)
2016/09/22 PHP
JS选中checkbox后获取table内一行TD所有数据的方法
2015/07/01 Javascript
第一次接触神奇的Bootstrap基础排版
2016/07/26 Javascript
HTML中setCapture、releaseCapture 使用方法浅析
2016/09/25 Javascript
在js代码拼接dom对象到页面上去的模板总结(必看)
2017/02/14 Javascript
基于JavaScript实现轮播图原理及示例
2020/04/10 Javascript
使用gulp搭建本地服务器并实现模拟ajax
2017/04/05 Javascript
原生javascript实现分页效果
2017/04/21 Javascript
关于vue-resource报错450的解决方案
2017/07/24 Javascript
解决微信二次分享不显示摘要和图片的问题
2017/08/18 Javascript
js阻止默认右键的下拉菜单方法
2018/01/02 Javascript
JavaScript实现多态和继承的封装操作示例
2018/08/20 Javascript
解决vue 单文件组件中样式加载问题
2019/04/24 Javascript
Vue项目中使用jquery的简单方法
2019/05/16 jQuery
vue实现分页栏效果
2019/06/28 Javascript
vue-video-player 解决微信自动全屏播放问题(横竖屏导致样式错乱问题)
2020/02/25 Javascript
vue@cli3项目模板怎么使用public目录下的静态文件
2020/07/07 Javascript
简单分析Python中用fork()函数生成的子进程
2015/05/04 Python
Python中对象迭代与反迭代的技巧总结
2016/09/17 Python
记一次pyinstaller打包pygame项目为exe的过程(带图片)
2020/03/02 Python
django admin 根据choice字段选择的不同来显示不同的页面方式
2020/05/13 Python
Python pip 常用命令汇总
2020/10/19 Python
马来西亚在线购物市场:PGMall.my
2019/10/13 全球购物
数据库设计的包括哪两种,请分别进行说明
2016/07/15 面试题
服装机修工岗位职责
2013/12/26 职场文书
作风整顿剖析材料
2014/09/30 职场文书
小学教研工作总结2015
2015/05/13 职场文书
关于感恩老师的古诗句
2019/08/20 职场文书
SqlServer 垂直分表(减少程序改动)
2021/04/16 SQL Server
Java框架入门之简单介绍SpringBoot框架
2021/06/18 Java/Android
MySQL数据库10秒内插入百万条数据的实现
2021/11/01 MySQL
Rust 连接 PostgreSQL 数据库的详细过程
2022/01/22 PostgreSQL