numpy文件存取
来源:互联网 发布:ps4版巫师3年度版优化 编辑:程序博客网 时间:2024/05/11 01:28
转自:http://hyry.dip.jp/tech/book/page/scipy/numpy_file.html
文件存取
NumPy提供了多种存取数组内容的文件操作函数。保存数组数据的文件可以是二进制格式或者文本格式。二进制格式的文件又分为NumPy专用的格式化二进制类型和无格式类型。
使用数组对象的tofile()方法可以方便地将数组中的数据以二进制格式写进文件。tofile()输出的数据不保存数组形状和元素类型等信息。因此用fromfile()函数读回数据时需要用户指定元素类型,并对数组的形状进行适当的修改:
从上面的例子可以看出,在读入数据时需要正确设置dtype参数,并修改数组的shape属性才能得到和原始数据一致的结果。无论数据的排列顺序是C语言格式还是Fortran语言格式,tofile()都统一使用C语言格式输出。此外如果指定了sep参数,则fromfile()和tofile()将以文本格式对数组进行输入输出。sep参数指定的是文本数据中数值的分隔符。
load()和save()用NumPy专用的二进制格式保存数据,它们会自动处理元素类型和形状等信息:
如果想将多个数组保存到一个文件中,可以使用savez()。savez()的第一个参数是文件名,其后的参数都是需要保存的数组,也可以使用关键字参数为数组起名,非关键字参数传递的数组会自动起名为arr_0、arr_1、...。savez()输出的是一个扩展名为npz的压缩文件,其中每个文件都是一个save()保存的npy文件,文件名和数组名相同。load()自动识别npz文件,并且返回一个类似于字典的对象,可以通过数组名作为键获取数组的内容:
用解压软件打开“result.npz”文件,会发现其中有三个文件:“arr_0.npy”、“arr_1.npy”和“sin_array.npy”,其中分别保存着数组a、b、c的内容。
savetxt()和loadtxt()可以读写保存1维和2维数组的文本文件。例如可以用它们读写CSV格式的文本文件:
有的CSV文件中除了保存数值之外,还保存一些说明文字,例如第一行和第一列通常为列名和行名。如果需要忽略CSV文件的第一行和第一列,可以先将文件读为字符串数组,然后取出需要的部分再转换为数值数组。例如对于下面的CSV数据文件:
可以采用如下的程序读入其中的数值部分:
02-numpy/numpy_read_csv.py
读取CSV文件
此外,使用结构数组也能读入这样的文件,并且可以使用不同的元素类型保存每个列的值,下面先定义结构数组的类型:
由于文件中的第一行不是数据,因此需要先打开数据文件,读取完第一行之后,再把文件对象传递给loadtxt():
实际上,前面介绍的所有读写文件的函数都可以直接使用已经打开的文件对象,如果使用文件对象,可以将多个数组储存到一个npy文件中:
- numpy文件存取
- Numpy之文件存取
- numpy 文件存取
- numpy之文件存取
- Numpy文件存取
- Numpy之文件存取
- NumPy文件存取
- numpy文件存取
- Numpy文件存取
- numpy 文件存取
- Numpy文件存取
- python:numpy 文件存取
- Numpy学习(1)numpy文件存取
- 【Python学习】NumPy文件存取
- numpy文件存取-npz,npy
- NumPy 文件存取 tofile,fromfile, load,save
- python 科学计算学习一:numpy文件存取,内存映射
- python 科学计算学习一:numpy文件存取,内存映射
- 每天一个 Linux 命令(18):locate 命令
- 算法训练 成绩的等级输出
- 快速排序
- Tsinsen-A1042-矩阵面积交
- arcgis二维场景建立,建筑物提升
- numpy文件存取
- 每天一个 Linux 命令(19):find 命令概览
- Redis伪集群的搭建
- 每天一个 Linux 命令(20):find命令之exec
- redis自启动配置详解
- 直接选择排序
- 组合数
- NumPy-快速处理数据
- 第八章8.8证明EXACT 4ST问题为NP-complete