本篇博客所有示例使用Jupyter NoteBook演示。
Python数据分析系列笔记基于:利用Python进行数据分析(第2版)
目录
1.用于数组的文件输入输出
NumPy能够读写磁盘上的文本数据或二进制数据。本小节只讨论NumPy的内置二进制格式,因为更多用户会使用pandas或其他工具加载文本或表格数据(之后会学习).
np.save和np.load是读写磁盘数组数据的两个主要函数。默认情况下,数组是以未压缩的原始二进制格式保存在扩展名为.npy的文件中的:
import numpy as np
arr = np.arange(10)
np.save('some_array',arr)
save的第一个参数是文件路径(绝对/相对路径)末尾没有扩展名.npy,则该扩展名会被自动加上。然后就可以使用np.load读取磁盘上的数组:
np.load('some_array.npy')
通过np.savez可以将多个数组保存到一个未压缩文件中,数组以关键字参数的形式传入:
print(arr)
np.savez('array.npz',a=arr,b=arr)
#加载.npz时会得到一个类似字典对象
arch = np.load('array.npz')
print(arch['a']) #会对各个数组进行延迟加载
print(arch['b'])
如果要将数据压缩,可以使用np.savez_compressed:
print(arr)
np.savez_compressed('array_compressed.npz',a=arr,b=arr)
#加载.npz时会得到一个类似字典对象
arch = np.load('array_compressed.npz')
print(arch['a']) #会对各个数组进行延迟加载
print(arch['b'])
2.高级数组输入输出
之前的np.save和np.load用于读写磁盘上以二进制格式存储的数组。还有一些工具可用于更为复杂的场景。尤其是内存映像(memory map),它使你能处理在内存中放不下的数据集。
- 内存映像文件
内存映像文件是一种将磁盘上的非常大的二进制数据文件当作内存中的数组进行处理的方式。NumPy实现了一个类似于ndarray的memma