参考:菜鸟教程

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相关推荐

  1. Python中如何读取npy、npz文件?

    npy以及npz这两种文件格式,是python第三方库numpy才能够保存和读取的文件类型,而也只有通过该库才有方法来完成读取保存操作.下面这篇文章所要介绍的内容就是,python读取和保存npy.n ...

  2. 多路复用IO: select、sys_select、do_select源码分析

    <srsLTE源码学习:逻辑信道多路复用与MAC CE分解pdu_queue.h,pdu_queue.cc> <select用法> <从select函数谈及系统调用原理& ...

  3. 【Java基础】吃透Java IO:字节流、字符流、缓冲流

    文章目录 [Java基础-3]吃透Java IO:字节流.字符流.缓冲流 一.初识java IO 1.1 IO流分类 1.1.1 输入流与输出流 1.1.2 字节流与字符流 1.1.3 节点流和处理流 ...

  4. java byte char io流_吃透Java IO:字节流、字符流、缓冲流

    前言有人曾问fastjson的作者(阿里技术专家高铁):"你开发fastjson,没得到什么好处,反而挨了骂背了锅,这种事情你为什么要做呢?" 高铁答道:"因为热爱本身, ...

  5. 吃透Java IO:字节流、字符流、缓冲流

    IO流是Java中的一个重要构成部分,也是我们经常打交道的. 下面几个问题(问题还会继续补充),如果你能对答如流,那么恭喜你,IO知识掌握得很好,可以立即关闭文章.反之,你可以在后面得文章中寻找答案. ...

  6. java字符流字节流场景_【120期】Java IO:字节流、字符流、缓冲流

    IO流是Java中的一个重要构成部分,也是我们经常打交道的.这篇关于Java IO的博文干货满满,堪称全网前三(请轻喷!) 下面几个问题(问题还会继续补充),如果你能对答如流,那么恭喜你,IO知识掌握 ...

  7. fileoutputstream 字节乱码_吃透Java IO:字节流、字符流、缓冲流

    前言 有人曾问fastjson的作者(阿里技术专家高铁):"你开发fastjson,没得到什么好处,反而挨了骂背了锅,这种事情你为什么要做呢?" 高铁答道:"因为热爱本身 ...

  8. numpy IO 关于.npy文件

    .npy文件直接打开是乱码的,其中保存的是数组,是以未压缩的原始二进制格式保存的,所以应该使用np.load()加载,就可以打印出来看了 import numpy as np b = np.load( ...

  9. [转载] numpy教程:排序、搜索和计数

    参考链接: Python中的numpy.place http://blog.csdn.net/pipisorry/article/details/51822775 numpy排序.搜索和计数函数和方法 ...

最新文章

  1. 调用ajax_[WEB篇]-AJAX-02-AJAX应用案例
  2. C++实现欧拉的totient 函数(Euler’s totient function)(附完整源码)
  3. 关于mysql的三表联表查询的问题
  4. Choose unique values for the 'webAppRootKey' context-param in your web.xml files! 错误的解决
  5. 消息称百度网盘青春版降速23倍:从52MB/s降至2.2MB/s
  6. AC日记——约瑟夫问题 codevs 1282
  7. centos系统 查看当前python执行的进程
  8. HIVE存储(四)ORCFile
  9. linux邮件客户端软件,适用于Linux的4款最佳电子邮件客户端 | MOS86
  10. 移动硬盘格式化了?可以这样恢复数据
  11. @Transactional你知道多少?
  12. 学习《可复制的领导力》有感
  13. 被动扫描、主动扫描的概念
  14. ESPnet-SE 开源工具介绍
  15. 操作系统学习之文件管理:
  16. e租宝java_java Service warpper安装说明
  17. 做好SDDC规划?这10个术语先get起来
  18. 人工智能导论(王万良版)笔记整理
  19. 如何快速的把图片转换为PDF文件格式
  20. 长期接受碎片化信息,会有什么后果?

热门文章

  1. 靠 Java「上位」的编程语言,竟成最流行编程语言之一
  2. 服务器系统崩溃真是惊险刺激,guanjunjc
  3. 对区块链技术的一些新思考
  4. Vista发布在即 各版本详情介绍
  5. pku_oj: W11-01 最大素数问题 (C++)
  6. 单片机概述习题以及答案
  7. 《电感元器件》的特性分析
  8. 详细解说RAID6结构及原理
  9. maven_使用Maven Failsafe和JUnit @Category将集成测试与单元测试分开
  10. APP/网站性能优化方案汇总