Numpy IO:npy、npz
参考:菜鸟教程
1. Numpy IO
Numpy 可以读写磁盘上的文本数据或二进制数据;
NumPy 为 ndarray 对象引入了一个简单的文件格式:npy ,用于存储重建 ndarray 所需的数据、图形、dtype 和其他信息;
另外,Numpy还引入了npz格式,用于保存多个数组文件;
常用的 IO 函数有:
- save() 和 load() 函数是读写文件数组数据的两个主要函数,默认情况下,数组是以未压缩的原始二进制格式保存在扩展名为 .npy 的文件中
- savze() 函数用于将多个数组写入文件,默认情况下,数组是以未压缩的原始二进制格式保存在扩展名为 .npz 的文件中
- loadtxt() 和 savetxt() 函数处理正常的文本文件(.txt 等)
2. npy:save() & load()
- 2.1 save() 函数:将数组保存到以 .npy 为扩展名的文件中
numpy.save(file, arr, allow_pickle=True, fix_imports=True)
- file:要保存的文件,扩展名为 .npy,如果文件路径末尾没有扩展名 .npy,该扩展名会被自动加上。
- arr: 要保存的数组
- allow_pickle: 可选,布尔值,允许使用 Python pickles 保存对象数组,Python 中的 pickle 用于在保存到磁盘文件或从磁盘文件读取之前,对对象进行序列化和反序列化。
- fix_imports: 可选,为了方便 Pyhton2 中读取 Python3 保存的数据。
- 2.2 实例
a = np.array([1,2,3,4,5])
# 保存到 outfile.npy 文件上
np.save('outfile.npy',a)
# 保存到 outfile2.npy 文件上,如果文件路径末尾没有扩展名 .npy,该扩展名会被自动加上
np.save('outfile2',a)
- 2.3 查看
直接用 cat 命令查看文件会得到乱码,因为它们是 Numpy 专用的二进制格式后的数据。
$ cat outfile.npy
?NUMPYv{'descr': '<i8', 'fortran_order': False, 'shape': (5,), }
$ cat outfile2.npy
?NUMPYv{'descr': '<i8', 'fortran_order': False, 'shape': (5,), }
- 2.4 load() 函数
b = np.load('outfile.npy')
print (b)
out:[1 2 3 4 5]
3. npz:savez() & load()
- 3.1 savez() 函数:将多个数组保存到以 npz 为扩展名的文件中
numpy.savez(file, *args, **kwds)
- file:要保存的文件,扩展名为 .npz,如果文件路径末尾没有扩展名 .npz,该扩展名会被自动加上。
- args: 要保存的数组,可以使用关键字参数为数组起一个名字,非关键字参数传递的数组会自动起名为 arr_0, arr_1, … 。
- kwds: 要保存的数组使用关键字名称。
- 3.2 实例
a = np.array([[1,2,3],[4,5,6]])
b = np.arange(0, 1.0, 0.1)
c = np.sin(b)
# c 使用了关键字参数 sin_array
np.savez("runoob.npz", a, b, sin_array = c)
r = np.load("runoob.npz")
print(r.files) # 查看各个数组名称
print(r["arr_0"]) # 数组 a
print(r["arr_1"]) # 数组 b
print(r["sin_array"]) # 数组 c
out:
['sin_array', 'arr_0', 'arr_1']
[[1 2 3][4 5 6]]
[0. 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9]
[0. 0.09983342 0.19866933 0.29552021 0.38941834 0.479425540.56464247 0.64421769 0.71735609 0.78332691]
4. savetxt() 和 loadtxt()
savetxt() 函数是以简单的文本文件格式存储数据,对应的使用 loadtxt() 函数来获取数据。
np.loadtxt(FILENAME, dtype=int, delimiter=’ ')
np.savetxt(FILENAME, a, fmt="%d", delimiter=",")
- 参数 delimiter 可以指定各种分隔符、针对特定列的转换器函数、需要跳过的行数等。
a = np.array([1,2,3,4,5])
np.savetxt('out.txt',a)
b = np.loadtxt('out.txt')
print(b)
out:[1. 2. 3. 4. 5.]
a=np.arange(0,10,0.5).reshape(4,-1)
np.savetxt("out.txt",a,fmt="%d",delimiter=",") # 改为保存为整数,以逗号分隔
b = np.loadtxt("out.txt",delimiter=",") # load 时也要指定为逗号分隔
print(b)
out:
[[0. 0. 1. 1. 2.][2. 3. 3. 4. 4.][5. 5. 6. 6. 7.][7. 8. 8. 9. 9.]]
Numpy IO:npy、npz相关推荐
- Python中如何读取npy、npz文件?
npy以及npz这两种文件格式,是python第三方库numpy才能够保存和读取的文件类型,而也只有通过该库才有方法来完成读取保存操作.下面这篇文章所要介绍的内容就是,python读取和保存npy.n ...
- 多路复用IO: select、sys_select、do_select源码分析
<srsLTE源码学习:逻辑信道多路复用与MAC CE分解pdu_queue.h,pdu_queue.cc> <select用法> <从select函数谈及系统调用原理& ...
- 【Java基础】吃透Java IO:字节流、字符流、缓冲流
文章目录 [Java基础-3]吃透Java IO:字节流.字符流.缓冲流 一.初识java IO 1.1 IO流分类 1.1.1 输入流与输出流 1.1.2 字节流与字符流 1.1.3 节点流和处理流 ...
- java byte char io流_吃透Java IO:字节流、字符流、缓冲流
前言有人曾问fastjson的作者(阿里技术专家高铁):"你开发fastjson,没得到什么好处,反而挨了骂背了锅,这种事情你为什么要做呢?" 高铁答道:"因为热爱本身, ...
- 吃透Java IO:字节流、字符流、缓冲流
IO流是Java中的一个重要构成部分,也是我们经常打交道的. 下面几个问题(问题还会继续补充),如果你能对答如流,那么恭喜你,IO知识掌握得很好,可以立即关闭文章.反之,你可以在后面得文章中寻找答案. ...
- java字符流字节流场景_【120期】Java IO:字节流、字符流、缓冲流
IO流是Java中的一个重要构成部分,也是我们经常打交道的.这篇关于Java IO的博文干货满满,堪称全网前三(请轻喷!) 下面几个问题(问题还会继续补充),如果你能对答如流,那么恭喜你,IO知识掌握 ...
- fileoutputstream 字节乱码_吃透Java IO:字节流、字符流、缓冲流
前言 有人曾问fastjson的作者(阿里技术专家高铁):"你开发fastjson,没得到什么好处,反而挨了骂背了锅,这种事情你为什么要做呢?" 高铁答道:"因为热爱本身 ...
- numpy IO 关于.npy文件
.npy文件直接打开是乱码的,其中保存的是数组,是以未压缩的原始二进制格式保存的,所以应该使用np.load()加载,就可以打印出来看了 import numpy as np b = np.load( ...
- [转载] numpy教程:排序、搜索和计数
参考链接: Python中的numpy.place http://blog.csdn.net/pipisorry/article/details/51822775 numpy排序.搜索和计数函数和方法 ...
最新文章
- 调用ajax_[WEB篇]-AJAX-02-AJAX应用案例
- C++实现欧拉的totient 函数(Euler’s totient function)(附完整源码)
- 关于mysql的三表联表查询的问题
- Choose unique values for the 'webAppRootKey' context-param in your web.xml files! 错误的解决
- 消息称百度网盘青春版降速23倍:从52MB/s降至2.2MB/s
- AC日记——约瑟夫问题 codevs 1282
- centos系统 查看当前python执行的进程
- HIVE存储(四)ORCFile
- linux邮件客户端软件,适用于Linux的4款最佳电子邮件客户端 | MOS86
- 移动硬盘格式化了?可以这样恢复数据
- @Transactional你知道多少?
- 学习《可复制的领导力》有感
- 被动扫描、主动扫描的概念
- ESPnet-SE 开源工具介绍
- 操作系统学习之文件管理:
- e租宝java_java Service warpper安装说明
- 做好SDDC规划?这10个术语先get起来
- 人工智能导论(王万良版)笔记整理
- 如何快速的把图片转换为PDF文件格式
- 长期接受碎片化信息,会有什么后果?