欢迎访问宙启技术站
智能推送

numpy.lib.format模块中的文件格式:了解.npy和.npz格式的区别

发布时间:2024-01-06 11:58:44

numpy.lib.format模块是NumPy库中用于处理文件格式的模块,它定义了.npy和.npz两种常用的文件格式。这两种文件格式在存储和使用上有一些区别。

1. .npy格式:

.npy文件是NumPy专用的二进制格式,它可以用于存储多维数组和相关的元数据信息。.npy文件的格式非常简单,数据以二进制的形式存储在文件中,可以通过numpy.load()函数进行加载。.npy文件只能存储单个数组。

使用例子:

import numpy as np

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

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

# 加载.npy文件
loaded_arr = np.load('array.npy')

# 打印加载后的数组
print(loaded_arr)

上述例子中,我们首先创建一个数组arr,然后使用np.save()函数将该数组保存为array.npy文件。接下来,我们使用np.load()函数加载.npy文件,并将结果存储在loaded_arr变量中。最后,我们打印加载后的数组,可以看到保存和加载的结果是一样的。

2. .npz格式:

.npz文件是NumPy专用的压缩格式,它可以用于存储多个数组和相关的元数据信息。.npz文件实际上是一个压缩包,其中可以包含多个.npz或.npy文件。.npz文件可以通过numpy.load()函数加载,加载后会返回一个类似字典的对象,其中包含各个数组的名称和对应的值。

使用例子:

import numpy as np

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

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

# 加载.npz文件
loaded_data = np.load('arrays.npz')

# 打印加载后的数组
print(loaded_data['arr1'])
print(loaded_data['arr2'])

上述例子中,我们首先创建两个数组arr1和arr2,然后使用np.savez()函数将这两个数组保存为arrays.npz文件,并分别指定了两个数组的名称。接下来,我们使用np.load()函数加载.npz文件,并将结果存储在loaded_data变量中。最后,我们通过字典方式访问加载后的数组,并打印出来。

总结起来,.npy格式适合保存单个数组,而.npz格式适合保存多个数组。.npz格式通过压缩来减小文件大小,同时支持通过字典方式访问各个数组。应根据具体的需求选择适合的文件格式进行存储和加载。