2.4 NumPy读写文件
在数据分析中,经常需要从文件中读取数据或将数据写入文件,因此,学会读写文件操作是深入学习 NumPy 的基础。下面将分别介绍如何使用 NumPy 函数来读写一维或二维数组的文本文件、CSV 格式文件、二进制格式文件和多维数据文件。其中 CSV(Comma-Separated Value,逗号分隔值)格式是一种常见的文件格式,Excel可以处理 CSV 文件。
NumPy文件读写主要有二进制的文件读写和文件列表形式的数据读写两种形式:
- save函数是以二进制的格式保存数据
- load函数是从二进制的文件中读取数据
- savez函数可以将多个数组保存到一个文件中
- 存储时可以省略扩展名,但读取时不能省略扩展名。
2.4.1 读写文本文件
在NumPy中,loadtxt()和savetxt()函数可以对文件后缀名为 .txt和 .csv的文件进行读写操作。
- 将一维或二维数组写入 TXT 文件或 CSV 格式文件
在NumPy中,使用savetxt()函数可以将一维或二维数组写入后缀名为 .txt或 .csv的文件,该函数的格式如下:
numpy.savetxt(fname,array,fmt='%.18e',delimiter=None,newline='\n', header='', footer='', comments='#', encoding=None)
函数中参数说明如下:
- fname:文件、字符串或产生器,可以是 .gz 或 .bz2 的压缩文件;
- array:存入文件的数组(一维数组或者二维数组);
- fmt:写入文件的格式,例如:%d,%.2f,%.18e,默认值是%.18e;
- delimiter:分割符,默认是空格;
- newline:换行符;
- header:在文件开头写入的字符串;
- footer:在文件末尾写入的字符串;
- comments:为添加到页眉和页脚的字符串标记注释符,默认值为#;
- encoding:设置输出文件的编码。
In [1]:
# -*- coding: utf-8 -*- import numpy as np arr4_1_1 = np.arange(35).reshape(5,7) arr4_1_1
Out[1]:
array([[ 0, 1, 2, 3, 4, 5, 6], [ 7, 8, 9, 10, 11, 12, 13], [14, 15, 16, 17, 18, 19, 20], [21, 22, 23, 24, 25, 26, 27], [28, 29, 30, 31, 32, 33, 34]])
In [2]:
np.savetxt('test1.txt',arr4_1_1) #fmt默认取%.18e(浮点数),分割符默认是空格,写入文件test1.txt
In [3]:
#写入文件的是十进制整数,分割符设置为逗号 np.savetxt('test2.txt',arr4_1_1,fmt='%d',delimiter=',')
In [4]:
#在test3.txt文件头部和尾部都加#test3注释,写入的文件是字符串,分割符设置为逗号 np.savetxt('test3.txt',arr4_1_1,fmt='%s',delimiter=',',header='test3',footer='test3')
In [5]:
#在test4.txt文件头部加##test4注释 np.savetxt('test4.txt',arr4_1_1,fmt='%d',delimiter=';