一、保存单个数组
使用np.save函数可以将单个NumPy数组保存到磁盘。其调用方法如下:
import numpy as np
# 创建一个NumPy数组
a = np.arange(10)
# 将a保存到磁盘
np.save('a.npy', a)
上述代码中,首先使用np.arange函数创建一个包含10个元素的一维数组a,然后使用np.save函数将该数组保存到名为a.npy的文件中。
读取已保存的数组可以使用np.load函数,其调用方法如下:
# 读取a.npy文件
a = np.load('a.npy')
# 打印数组内容
print(a)
运行上述代码后,输出结果为:
[0 1 2 3 4 5 6 7 8 9]
二、保存多个数组
如果要将多个NumPy数组保存到磁盘,只需将它们依次传递给np.save函数即可。其调用方法如下:
# 创建两个NumPy数组
a = np.arange(10)
b = np.random.rand(5, 5)
# 将a和b保存到磁盘
np.save('ab.npy', [a, b])
上述代码中,首先创建一个一维数组a和一个二维随机数组b,然后将它们保存到名为ab.npy的文件中。需要注意的是,在保存多个数组时,需要将它们放在一个列表中进行传递。
与保存单个数组类似,也可以使用np.load函数读取已保存的多个数组。其调用方法如下:
# 读取ab.npy文件
a, b = np.load('ab.npy', allow_pickle=True)
# 打印数组内容
print(a)
print(b)
需要注意的是,当保存多个数组时,读取需要指明allow_pickle=True,否则会出现警告信息。
三、保存压缩数组
在处理大规模数据时,为了减小存储空间和提高I/O效率,可以采用压缩的方式保存NumPy数组。np.savez函数就是一种用于保存压缩数组的函数。其调用方法如下:
# 创建两个NumPy数组
a = np.arange(10)
b = np.random.rand(5, 5)
# 将a和b保存为压缩文件
np.savez('ab.npz', a=a, b=b)
# 读取压缩文件
data = np.load('ab.npz')
# 打印数组内容
print(data['a'])
print(data['b'])
上述代码中,使用np.savez函数将两个NumPy数组a和b以关键字参数的形式保存为压缩文件ab.npz,读取时可以使用np.load函数读取整个压缩文件。
需要注意的是,在压缩文件中保存的数组可以用字典的方式获取,即通过data[key]的形式读取。同时,在使用np.savez保存多个数组时,数据的压缩效率可能会因数组的数据类型和尺寸不同而有所不同。
四、总结
本文介绍了Python中一个常用的数据存储函数——np.save函数,主要围绕单个数组、多个数组和压缩数组三个方面进行讲解。在使用np.save函数时,需要注意传递正确的参数和保持文件后缀正确,以避免出现错误。同时,在使用压缩保存时,可以通过字典的方式获取保存的数据。