文件是计算机存储设备中的一个容器,用于存储数据。
在 NumPy 的上下文中,文件可以被认为是用于在计算机存储设备中存储 NumPy 数组的容器。
保存单个 NumPy 数组文件
在 NumPy 中,我们使用 `save()` 函数将单个 NumPy 数组保存到 `.npy` 格式的二进制文件中。
以下是 `save()` 函数的语法。
np.save(file, array)
file
- 指定文件名 (如果需要,包含路径)array
- 指定要保存的 NumPy 数组
现在,让我们看一个示例。
import numpy as np
array1 = np.array([[2, 4, 6],
[8, 10, 12]])
# save the array to a file
np.save('file1.npy', array1)
在这里,我们将 NumPy 数组 array1 保存到我们当前目录的二进制文件 `file1.npy` 中。
注意: 如果文件名不包含 `.npy` 扩展名,它将被自动添加。
加载单个 NumPy 数组文件
在前面的示例中,我们将一个数组保存到了一个二进制文件中。现在我们将使用 `load()` 函数加载该保存的文件。
让我们看一个例子。
import numpy as np
# load the saved NumPy array
loaded_array = np.load('file1.npy')
# display the loaded array
print(loaded_array)
输出
[[ 2 4 6] [ 8 10 12]]
在这里,我们使用了 `load()` 函数来读取二进制文件 `file1.npy`。这是我们在上一个示例中使用 `save()` 函数创建和保存的同一个文件。
保存多个 NumPy 数组文件
要将多个 NumPy 数组保存到一个文件中,我们使用 `savez()` 函数。
`savez()` 函数与 `save()` 函数类似,但它可以一次性将多个数组保存到 `.npz` 格式的文件中。
以下是 `savez()` 函数的语法。
np.savez(file, *args, **kwds)
file
- 要保存数组的文件名*args
- 要保存的数组列表 (逗号分隔)**kwds
- 用于给要保存的文件指定自定义名称的 关键字参数
现在,让我们看一个示例。
import numpy as np
# create two NumPy arrays
array1 = np.array([2, 6, 10])
array2 = np.array([4, 8, 12])
# save the two arrays into a single file
np.savez('file2.npz', file1 = array1, file2 = array2)
在此示例中,我们使用 `np.savez()` 函数将两个 NumPy 数组 array1 和 array2 保存到名为 `file2.npz` 的单个文件中。
`file1` 和 `file2` 是使用关键字参数为数组指定的名称。
注意: 我们可以使用 `savez_compressed()` 将多个数组保存到压缩文件中。此函数与 `savez()` 类似,但使用压缩来减小保存文件的大小。
加载多个 NumPy 数组文件
在前面的示例中,我们将多个数组保存到了一个文件中。现在我们将使用 `load()` 函数加载该保存的文件。
import numpy as np
# load the saved arrays
load_data = np.load('file2.npz')
# retrieve the arrays using their names
array1 = load_data['file1']
array2 = load_data['file2']
# display the loaded arrays
print(array1)
print(array2)
输出
[ 2 6 10] [ 4 8 12]
在上面的示例中,我们首先使用 `np.load()` 函数从文件中加载保存的数组。
然后,我们通过数组名称 `file1` 和 `file2` (在前一个示例中提到) 来检索数组,形式为:`data['file1']` 和 `data['file2']`。
最后,我们显示了加载的数组。