python io_NumPy IO
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相关推荐
- python 文件IO
一.IO.同步IO和异步IO IO在计算机中指Input/Output,也就是输入和输出.由于程序和运行时数据是在内存中驻留,由CPU这个超快的计算核心来执行,涉及到数据交换的地方,通常是磁盘.网络等 ...
- python文件都是脚本吗_脚本语言系列之Python | Python文件IO
Python是做自动化工作首选的一门语言,与更复杂的语言相比,Python 非常便于快速学习.语法很少,具有良好的 可读性,即使测试工程师们没有丰富的编码经验,也能快速学会:Python 的极简风格对 ...
- Python(十三)IO编程
IO在计算机中指Input/Output,也就是输入和输出.由于程序和运行时数据是在内存中驻留,由CPU这个超快的计算核心来执行,涉及到数据交换的地方,通常是磁盘.网络等,就需要IO接口. 比如你打开 ...
- python 异步io 写excel_python异步IO编程(二)
python异步IO编程(二) 目录 开门见山 Async IO设计模式 事件循环 asyncio 中的其他顶层函数 开门见山 下面我们用两个简单的例子来让你对异步IO有所了解 importasync ...
- python的io模块
open函数是一个工厂函数.根据传入的变量,open函数会进行文件的开启.文件对象的创建与设定,然后返回文件对象.我们来看一下指定不同变量时,open函数具体为我们返回了什么类型的文件对象呢: > ...
- Python的io模块详解
Python的io模块提供了多个流式处理接口,具体的处理函数实现位于_pyio.py模块中. 在_io.py模块中,提供了唯一的模块方法open(name, mode=None, buffering= ...
- Python中IO流与File对象
IO流: 什么叫做IO stream(input output stream):输入输出流 指的就是内存数据的读入和写出!!!! 广义上来说,IO流指的就是数据到磁盘.到另一电脑间(socket)的都 ...
- Python 文件 IO 操作详解
Python 文件 IO 操作详解 1.文件 IO 常用操作 2.文件打开操作 2.1 打开命令 2.2 命令参数 2.2.1 路径 2.2.2 mode 2.2.3 buffering 缓冲区 2. ...
- python中IO编程中关于StringIO的读写问题
阅读前请看一下:我是一个热衷于记录的人,每次写博客会反复研读,尽量不断提升博客质量.文章设置为仅粉丝可见,是因为写博客确实花了不少精力.希望互相进步谢谢!! 文章目录 阅读前请看一下:我是一个热衷于记 ...
最新文章
- Linux 进程管理工具
- 13.2.7 中间件
- vc连接mysql 查询_vc连接数据库中查询代码如何写呀 急急急!!!!!!
- [置顶] 均衡音效
- 扫盲:php session缓存至memcached中的方法
- oracle查看表空间的几个sql
- Markdown编辑器: 语法、Atom、Word、PPT
- 解决mysql导出scv文件乱码、蹿行的问题
- Codeforces Problem-705A Hulk
- WebSphere漏洞总结复现
- 【Python工具】Python版本的天眼查,是不是就很nice啦 | 附带源码
- 企业微信自动添加手机好友工具
- 微信小程序云开发 操作数据库-简单数据的查询
- 树莓派搭建远程视频监控教程
- MIS迭代一:增删改查功能测试
- k8s部署zabbix_基于k8s平台的Zabbix压力测试
- Web-网上在线支付
- error: C++ preprocessor “/lib/cpp“ fails sanity check错误解决方法
- 代码实现:圣诞树效果(易懂,必会)/用html实现圣诞树效果
- 【情报工具】网络时代如何辨别信息真伪?
热门文章
- jaxb list集合对象_JAXB –表示空集合和空集合
- JEP 277“增强弃用”非常好。 但这是一个更好的选择
- uibinder表单提交_使用UIBinder的GWT自定义按钮
- 为Jersey 2.19创建共享库以与Weblogic 12.1.3一起使用
- 经过几天的Scala回归Java的10个最烦人的事情
- Spring Data Solr入门
- 静态工厂方法与传统构造方法
- Spring和JSF集成:转换器
- 使用Cloud SQL的Google App Engine全文搜索
- jqGrid,REST,AJAX和Spring MVC集成