NumPy - 支持的文件格式
NumPy 中的文件格式
NumPy 广泛支持以各种文件格式保存和加载数组。这些格式允许您以易于共享、读取和处理的方式存储数据。
处理大型数据集时,选择合适的文件格式来存储 NumPy 数组非常重要。最常见的格式包括:
- .npy:用于保存单个数组及其元数据。
- .npz:一种压缩存档格式,用于将多个数组保存在单个文件中。
- 文本文件:用于存储易于阅读的数据存储,包括 CSV 和自定义文本格式。
.npy 格式
.npy 格式是 NumPy 用于存储数组的原生二进制格式。此格式保留了数组的数据类型和形状信息。
使用 numpy.save() 函数
numpy.save() 函数以 .npy 格式保存单个 NumPy 数组。这种格式对于存储大型数组非常高效,因为它可以完整地保留所有元数据。
示例
在本例中,我们将创建一个 NumPy 数组并将其保存到 .npy 文件中 -
import numpy as np # 创建一个 NumPy 数组 arr = np.array([[1, 2, 3], [4, 5, 6]]) # 将数组保存到 .npy 文件中 np.save('array_data.npy', arr) # 加载已保存的数组进行验证 loaded_array = np.load('array_data.npy') print("已加载数组: ", loaded_array)
执行上述代码后,输出结果如下−
已加载数组: [[1 2 3] [4 5 6]]
.npz 格式
.npz 格式是一种压缩存档,用于将多个数组存储在一个文件中。它在处理多个数组时非常有用,因为它允许您将它们一起保存在一个压缩文件中。
使用 numpy.savez() 函数
numpy.savez 函数将多个数组保存在一个 .npz 文件中。您还可以使用 numpy.savez_compressed() 函数压缩存档中的数据。
示例
在以下示例中,我们将两个数组保存到一个 .npz 文件中,然后再将它们加载回来 -
import numpy as np # 创建两个数组 arr1 = np.array([1, 2, 3]) arr2 = np.array([[4, 5, 6], [7, 8, 9]]) # 将数组保存到 .npz 文件中 np.savez('arrays_data.npz', array1=arr1, array2=arr2) # 从 .npz 文件加载数组 loaded_data = np.load('arrays_data.npz') print("已加载的数组1: ", loaded_data['array1']) print("已加载的数组2: ", loaded_data['array2'])
输出结果为 −
已加载的数组1: [1 2 3] 已加载的数组2: [[4 5 6] [7 8 9]]
文本文件格式
CSV(逗号分隔值)等文本文件格式常用于存储表格数据。NumPy 提供了将数组保存到文本文件以及从文本文件加载数组的方法。
使用 numpy.savetxt() 函数
numpy.savetxt() 函数用于将数组保存到文本文件。它允许您指定分隔符、格式和标题。
示例
在此示例中,我们将使用 numpy.savetxt() 函数将 NumPy 数组保存到文本文件 -
import numpy as np # 创建一个 NumPy 数组 arr = np.array([[1, 2, 3], [4, 5, 6]]) # 将数组保存到文本文件 np.savetxt('array_data.txt', arr) # 从文本文件加载数组进行验证 loaded_array = np.loadtxt('array_data.txt') print("已加载数组: ", loaded_array)
执行代码后,输出结果为 −
已加载数组: [[1. 2. 3.] [4. 5. 6.]]
使用 numpy.genfromtxt() 函数
numpy.genfromtxt() 函数用于读取 CSV 文件并将其转换为 NumPy 数组。
示例
在下面的示例中,我们将使用 numpy.genfromtxt() 函数将 CSV 文件读入 NumPy 数组 -
import numpy as np # 从 CSV 文件读取数据 data_from_csv = np.genfromtxt('array_data.txt') # 打印加载的数据 print("从 CSV 加载的数据: ", data_from_csv)
获得的输出如下 -
从 CSV 加载的数据: [[1. 2. 3.] [4. 5. 6.]]
自定义格式
在某些情况下,您可能需要以自定义二进制格式写入或读取数据。NumPy 提供了 numpy.ndarray.tofile() 和 numpy.fromfile() 函数来处理自定义二进制数据格式。
使用 numpy.ndarray.tofile() 函数
numpy.ndarray.tofile() 函数用于将 NumPy 数组以原始格式写入二进制文件。您可以指定数据的文件和格式。
示例
在以下示例中,我们将使用 tofile() 函数将 NumPy 数组写入自定义二进制文件 -
import numpy as np # 创建 NumPy 数组 arr = np.array([1, 2, 3, 4, 5], dtype='int32') # 将数组写入二进制文件 arr.tofile('binary_data.dat') print("数组已写入二进制文件:", arr)
生成的结果如下所示 -
数组已写入二进制文件:[1 2 3 4 5]
使用 numpy.fromfile() 函数
numpy.fromfile() 函数用于将数据从自定义二进制文件读取到 NumPy 数组中。
示例
在本例中,我们将使用 fromfile() 函数读取自定义二进制文件并将其加载到 NumPy 数组中 -
import numpy as np # 从文件中读取二进制数据 data_from_binary = np.fromfile('binary_data.dat', dtype='int32') # 打印从二进制文件加载的数据 print("从二进制文件读取的数组:", data_from_binary)
我们得到如下所示的输出−
从二进制文件读取数组:[1 2 3 4 5]