详解 NumPy 从磁盘上保存(save)和加载(load)数组

NumPy中,可以使用numpy.save()和numpy.load()方法将数组保存到磁盘中,或从磁盘中加载数组。

接下来将逐一介绍这两个方法。

numpy.save()方法

numpy.save(file, arr, allow_pickle=True, fix_imports=True)方法可以将数组保存到磁盘文件中。它的参数包括:

  • file: 保存数组的文件名或文件对象;
  • arr: 要保存的数组;
  • allow_pickle(可选):布尔值,表示是否允许使用pickle序列化对象,默认为True;
  • fix_imports(可选):布尔值,表示是否修复Python2中的导入问题,默认为True。

例如,将数组保存到名为my_array.npy的文件中:

import numpy as np

arr = np.array([1, 2, 3, 4, 5])
np.save('my_array.npy', arr)

numpy.load()方法

numpy.load(file, mmap_mode=None, allow_pickle=True, fix_imports=True, encoding='ASCII')方法可以从磁盘文件中加载数组。它的参数包括:

  • file: 要加载的文件名或文件对象;
  • mmap_mode(可选):内存映射选项,如果给定,则返回memmap对象;
  • allow_pickle(可选):布尔值,表示是否允许使用pickle序列化对象,默认为True;
  • fix_imports(可选):布尔值,表示是否修复Python2中的导入问题,默认为True;
  • encoding(可选):当读取文本数据时使用的编码,例如CSV文件。

例如,从名为my_array.npy的文件中加载数组:

import numpy as np

arr = np.load('my_array.npy')
print(arr)

输出:

[1 2 3 4 5]

存储多个数组

另外,如果要存储多个数组,可以使用savez和savez_compressed函数。savez函数将多个数组保存到一个未压缩的.npz文件中,而savez_compressed函数将它们保存到一个压缩的.npz文件中。

下面是一个使用savez函数保存多个数组的示例:

import numpy as np

# 创建多个数组
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
c = np.array([7, 8, 9])

# 将这些数组保存到一个 .npz 文件中
np.savez('my_arrays.npz', a=a, b=b, c=c)

上面的代码将创建三个数组,并将它们保存到一个名为my_arrays.npz的未压缩的文件中。在保存期间,每个数组都使用一个指定的名称来标识。

要加载这些数组,可以使用load函数,如下所示:

# 从 .npz 文件中加载数组
loaded_data = np.load('my_arrays.npz')

# 获取每个数组
a = loaded_data['a']
b = loaded_data['b']
c = loaded_data['c']

上面的代码将从my_arrays.npz文件中加载数组,并将它们分配给变量a,b和c。

需要注意的是,load函数返回一个类似字典的对象,它可以通过数组的名称来访问数组数据。

除了.npz格式之外,NumPy还支持其他几种文件格式,例如.npy和.npz文件可以通过numpy.save和numpy.load函数进行保存和加载。.npy文件可以保存单个数组,而.npz文件可以保存多个数组,这与save和load函数的行为相同。需要注意的是,这些文件格式仅适用于NumPy数组。

本文链接:https://my.lmcjl.com/post/19511.html

展开阅读全文

4 评论

留下您的评论.