Numpy 读写文件,本章主要介绍Numpy
读写二进制文件和读写文本格式的数据,Numpy提供了几个函数,数据分析师可以用其把结果保存到文本或二进制文件中,同样,Numpy还提供了从文件中读取数据并将其转换为数组的方法。
学习本章内容,可以先了解极客教程NumPy 创建数组,极客教程Pandas 数据读取与写入介绍了类似文本文件,数据库数据的读写操作。
Numpy 读写二进制文件
Numpy 的save()
方法以二进制格式保存数据,load()
方法则从二进制文件读取数据。
假如你有一个数组保存,例如数据分析过程产生的结果,调用save()
函数即可,参数有两个:要保存到的文件名和要保存的数组,其中文件名中的.np
扩展名系统会自动添加。
import numpy as np
data = np.array([[1,2,3],[2,3,4],[3,4,5],[4,5,6]])
print(data)
np.save("saved_data", data)
输出结果如下:
若要恢复存储在.npy
文件中的数据,可以使用load()
函数,用文件名作为参数,这次记得添加.npy
扩展名。
import numpy as np
load_data = np.load("saved_data.npy")
print(load_data)
输出结果如下:
Numpy 读写文本格式的数据
考虑到文本格式的文件不必使用应用也能用处理,因此一般都会将数据存储为文本格式,而不是二进制格式。拿几行CSV
格式的数据为例,如下所示,文件data.csv
的内容如下:
Numpy的genfromtxt()
函数可以从文本文件中读取数据并将其插入数组中,通常而言,这个函数接收三个参数:存放数据的文件名、用于分隔值的字符和是否含有列标题。如下所示:
import numpy as np
data = np.genfromtxt('data.csv', delimiter=',',skip_header=True)
print(data)
输出结果如下:
这个函数包含两层隐式循环:第一层循环每次读取一行,第二层循环将每一行的多个值分开后,再对这些值进行转化,依次插入所创建的元素。它还能够处理文件中的缺失数据。
如下所示,文件data2.csv
的内容如下:
运行如下命令,观察genfromtxt()
是怎样把内容为空的项填充为nan
值的。
import numpy as np
data = np.genfromtxt('data2.csv', delimiter=',',skip_header=True)
print(data)
输出结果如下:
可以按照传统方法,使用数组索引按行获取数据,如下所示:
import numpy as np
data = np.genfromtxt('data2.csv', delimiter=',',skip_header=True)
print(data[0])
输出结果如下:
推荐知识点
极客教程Pandas 读写csv
极客教程Pandas 读写excel
极客教程Pandas 读取txt