您的位置:

Python 保存数组数据:使用np.save快速存储数据

一、np.save简介

在 Python 编程中,对于数组等数据的存储,我们通常需要使用到文件存储的方式,其中 np.save 函数是其中一个比较常用的存储方式。np.save 函数可以将 NumPy 数组存储到以 .npy 为扩展名的硬盘文件中。这样的存储形式非常方便快速,不用考虑文件的格式和文件的读写顺序,直接将数组存到文件中就行了。下面是一个 np.save 的示例:

import numpy as np

# 创建一个数组
arr = np.array([1, 2, 3, 4, 5])

# 将数组保存到文件
np.save('arr.npy', arr)

# 从文件中读取数组
arr = np.load('arr.npy')
print(arr)

上面的代码中,我们创建了一个长度为 5 的一维数组 arr,然后使用 np.save 将其保存到 arr.npy 文件中。最后,使用 np.load 读取存储的数组,输出结果应该为 [1 2 3 4 5]。

二、保存多个数组

有时候,我们需要将多个数组一起存储到文件中,而不是单独存储。这时候,我们可以使用 np.savez 函数,该函数接收一个或多个数组作为输入参数,并将它们保存到以 .npz 为扩展名的压缩文件中。下面是一个 np.savez 的示例:

import numpy as np

# 创建两个数组
arr1 = np.array([1, 2, 3, 4, 5])
arr2 = np.array([6, 7, 8, 9, 10])

# 将两个数组保存到文件
np.savez('arr.npz', arr1=arr1, arr2=arr2)

# 从文件中读取两个数组
arrays = np.load('arr.npz')
arr1 = arrays['arr1']
arr2 = arrays['arr2']
print(arr1)
print(arr2)

上面的代码中,我们创建了两个一维数组 arr1 和 arr2,然后使用 np.savez 将其保存到 arr.npz 文件中。最后,使用 np.load 读取存储的数组,并通过关键字参数来获取每个数组的值。

三、存储大型数组

如果要存储大型的数组,可能会遇到存储空间不足的问题。这时候,我们可以使用压缩算法来压缩数组,以减少存储空间。np.savez_compressed 函数可以将多个数组一起存储到以 .npz 为扩展名的压缩文件中,其压缩方式与 np.savez 函数相同。

import numpy as np

# 创建一个大型数组
arr = np.random.rand(10000, 10000)

# 将数组保存到压缩文件
np.savez_compressed('arr_compressed.npz', arr=arr)

# 从压缩文件中读取数组
arrays = np.load('arr_compressed.npz')
arr = arrays['arr']
print(arr)

上面的代码中,我们创建了一个大小为 10,000 × 10,000 的二维数组 arr,然后使用 np.savez_compressed 将其保存到 arr_compressed.npz 文件中。最后,使用 np.load 读取存储的数组。

四、总结

通过本文的介绍,我们可以了解到如何使用 np.save 函数将 NumPy 数组存储到硬盘文件中,以及如何使用 np.savez 和 np.savez_compressed 将多个数组一起存储到压缩文件中。这些存储方式不仅方便快速,而且非常实用,能够帮助我们节省存储空间,提高数据处理效率。