NumPy IO

Numpy 可以读写磁盘上的文本数据或二进制数据。

NumPy 为 ndarray 对象引入了一个简单的文件格式:npy。

npy 文件用于存储重建 ndarray 所需的数据、图形、dtype 和其他信息。

常用的 IO 函数有:

load() 和 save() 函数是读写文件数组数据的两个主要函数,默认情况下,数组是以未压缩的原始二进制格式保存在扩展名为 .npy 的文件中。

savez() 函数用于将多个数组写入文件,默认情况下,数组是以未压缩的原始二进制格式保存在扩展名为 .npz 的文件中。

loadtxt() 和 savetxt() 函数处理正常的文本文件(.txt 等)

numpy.save()

numpy.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 保存的数据。

实例

importnumpyasnpa=np.array([1,2,3,4,5])# 保存到 outfile.npy 文件上np.save('outfile.npy',a)# 保存到 outfile2.npy 文件上,如果文件路径末尾没有扩展名 .npy,该扩展名会被自动加上np.save('outfile2',a)

我们可以查看文件内容:

$ cat outfile.npy

?NUMPYv{'descr': '

$ cat outfile2.npy

?NUMPYv{'descr': '

可以看出文件是乱码的,因为它们是 Numpy 专用的二进制格式后的数据。

我们可以使用 load() 函数来读取数据就可以正常显示了:

实例

importnumpyasnpb=np.load('outfile.npy')print(b)

输出结果为:

[1 2 3 4 5]

np.savez

numpy.savez() 函数将多个数组保存到以 npz 为扩展名的文件中。

numpy.savez(file, *args, **kwds)

参数说明:file:要保存的文件,扩展名为 .npz,如果文件路径末尾没有扩展名 .npz,该扩展名会被自动加上。

args: 要保存的数组,可以使用关键字参数为数组起一个名字,非关键字参数传递的数组会自动起名为 arr_0, arr_1, … 。

kwds: 要保存的数组使用关键字名称。

实例

importnumpyasnpa=np.array([[1,2,3],[4,5,6]])b=np.arange(0,1.0,0.1)c=np.sin(b)# c 使用了关键字参数 sin_arraynp.savez("runoob.npz",a,b,sin_array=c)r=np.load("runoob.npz")print(r.files)# 查看各个数组名称print(r["arr_0"])# 数组 aprint(r["arr_1"])# 数组 bprint(r["sin_array"])# 数组 c

输出结果为:

['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.47942554

0.56464247 0.64421769 0.71735609 0.78332691]

savetxt()

savetxt() 函数是以简单的文本文件格式存储数据,对应的使用 loadtxt() 函数来获取数据。

np.loadtxt(FILENAME, dtype=int, delimiter=' ')

np.savetxt(FILENAME, a, fmt="%d", delimiter=",")

参数 delimiter 可以指定各种分隔符、针对特定列的转换器函数、需要跳过的行数等。

实例

importnumpyasnpa=np.array([1,2,3,4,5])np.savetxt('out.txt',a)b=np.loadtxt('out.txt')print(b)

输出结果为:

[1. 2. 3. 4. 5.]

使用 delimiter 参数:

实例

importnumpyasnpa=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)

输出结果为:

[[0. 0. 1. 1. 2.]

[2. 3. 3. 4. 4.]

[5. 5. 6. 6. 7.]

[7. 8. 8. 9. 9.]]

python io_NumPy IO相关推荐

  1. python 文件IO

    一.IO.同步IO和异步IO IO在计算机中指Input/Output,也就是输入和输出.由于程序和运行时数据是在内存中驻留,由CPU这个超快的计算核心来执行,涉及到数据交换的地方,通常是磁盘.网络等 ...

  2. python文件都是脚本吗_脚本语言系列之Python | Python文件IO

    Python是做自动化工作首选的一门语言,与更复杂的语言相比,Python 非常便于快速学习.语法很少,具有良好的 可读性,即使测试工程师们没有丰富的编码经验,也能快速学会:Python 的极简风格对 ...

  3. Python(十三)IO编程

    IO在计算机中指Input/Output,也就是输入和输出.由于程序和运行时数据是在内存中驻留,由CPU这个超快的计算核心来执行,涉及到数据交换的地方,通常是磁盘.网络等,就需要IO接口. 比如你打开 ...

  4. python 异步io 写excel_python异步IO编程(二)

    python异步IO编程(二) 目录 开门见山 Async IO设计模式 事件循环 asyncio 中的其他顶层函数 开门见山 下面我们用两个简单的例子来让你对异步IO有所了解 importasync ...

  5. python的io模块

    open函数是一个工厂函数.根据传入的变量,open函数会进行文件的开启.文件对象的创建与设定,然后返回文件对象.我们来看一下指定不同变量时,open函数具体为我们返回了什么类型的文件对象呢: > ...

  6. Python的io模块详解

    Python的io模块提供了多个流式处理接口,具体的处理函数实现位于_pyio.py模块中. 在_io.py模块中,提供了唯一的模块方法open(name, mode=None, buffering= ...

  7. Python中IO流与File对象

    IO流: 什么叫做IO stream(input output stream):输入输出流 指的就是内存数据的读入和写出!!!! 广义上来说,IO流指的就是数据到磁盘.到另一电脑间(socket)的都 ...

  8. Python 文件 IO 操作详解

    Python 文件 IO 操作详解 1.文件 IO 常用操作 2.文件打开操作 2.1 打开命令 2.2 命令参数 2.2.1 路径 2.2.2 mode 2.2.3 buffering 缓冲区 2. ...

  9. python中IO编程中关于StringIO的读写问题

    阅读前请看一下:我是一个热衷于记录的人,每次写博客会反复研读,尽量不断提升博客质量.文章设置为仅粉丝可见,是因为写博客确实花了不少精力.希望互相进步谢谢!! 文章目录 阅读前请看一下:我是一个热衷于记 ...

最新文章

  1. Linux 进程管理工具
  2. 13.2.7 中间件
  3. vc连接mysql 查询_vc连接数据库中查询代码如何写呀 急急急!!!!!!
  4. [置顶] 均衡音效
  5. 扫盲:php session缓存至memcached中的方法
  6. oracle查看表空间的几个sql
  7. Markdown编辑器: 语法、Atom、Word、PPT
  8. 解决mysql导出scv文件乱码、蹿行的问题
  9. Codeforces Problem-705A Hulk
  10. WebSphere漏洞总结复现
  11. 【Python工具】Python版本的天眼查,是不是就很nice啦 | 附带源码
  12. 企业微信自动添加手机好友工具
  13. 微信小程序云开发 操作数据库-简单数据的查询
  14. 树莓派搭建远程视频监控教程
  15. MIS迭代一:增删改查功能测试
  16. k8s部署zabbix_基于k8s平台的Zabbix压力测试
  17. Web-网上在线支付
  18. error: C++ preprocessor “/lib/cpp“ fails sanity check错误解决方法
  19. 代码实现:圣诞树效果(易懂,必会)/用html实现圣诞树效果
  20. 【情报工具】网络时代如何辨别信息真伪?

热门文章

  1. jaxb list集合对象_JAXB –表示空集合和空集合
  2. JEP 277“增强弃用”非常好。 但这是一个更好的选择
  3. uibinder表单提交_使用UIBinder的GWT自定义按钮
  4. 为Jersey 2.19创建共享库以与Weblogic 12.1.3一起使用
  5. 经过几天的Scala回归Java的10个最烦人的事情
  6. Spring Data Solr入门
  7. 静态工厂方法与传统构造方法
  8. Spring和JSF集成:转换器
  9. 使用Cloud SQL的Google App Engine全文搜索
  10. jqGrid,REST,AJAX和Spring MVC集成