文件输入输出
4、用于数组的文件输入输出
NumPy 能够读写磁盘上的文本数据或二进制数据。这一小节只讨论 NumPy 的内置二进制格式,因为更多的用户会使用 pandas 或其它工具加载文本或表格数据(见第 6 章)。
np.save
和np.load
是读写磁盘数组数据的两个主要函数。默认情况下,数组是以未压缩的原始二进制格式保存在扩展名为.npy
的文件中的:
In [213]: arr = np.arange(10)
In [214]: np.save('some_array', arr)
1
2
3
2
3
如果文件路径末尾没有扩展名.npy
,则该扩展名会被自动加上。然后就可以通过np.load
读取磁盘上的数组:
In [215]: np.load('some_array.npy')
Out[215]: array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
1
2
2
通过np.savez
可以将多个数组保存到一个未压缩文件中,将数组以关键字参数的形式传入即可:
In [216]: np.savez('array_archive.npz', a=arr, b=arr)
1
加载.npz
文件时,你会得到一个类似字典的对象,该对象会对各个数组进行延迟加载:
In [217]: arch = np.load('array_archive.npz')
In [218]: arch['b']
Out[218]: array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
1
2
3
4
2
3
4
如果要将数据压缩,可以使用numpy.savez_compressed
:
In [219]: np.savez_compressed('arrays_compressed.npz', a=arr, b=arr)
1
上次更新: 2025/04/02, 12:03:38