jax.numpy.savez#

jax.numpy.savez(file, *args, allow_pickle=True, **kwds)[source]#

将多个数组以未压缩的 .npz 格式保存到单个文件中。

以关键字参数的形式提供数组,以便将它们以相应的名称存储在输出文件中:savez(fn, x=x, y=y)

如果数组以位置参数的形式指定,例如 savez(fn, x, y),它们的名称将分别为 arr_0arr_1 等。

参数:
  • file (文件, 字符串, 或 pathlib.Path) – 数据将被保存到的文件名(字符串)或打开的文件(类文件对象)。如果 file 是字符串或 Path,则 .npz 扩展名将附加到文件名,如果它还不存在的话。

  • args (参数, 可选) – 要保存到文件的数组。请使用关键字参数(请参阅下面的 kwds)为数组分配名称。指定为 args 的数组将被命名为 “arr_0”、“arr_1” 等。

  • allow_pickle (bool, 可选) – 允许使用 Python pickle 保存对象数组。不允许使用 pickle 的原因包括安全性(加载 pickle 数据可以执行任意代码)和可移植性(pickle 对象可能无法在不同的 Python 安装中加载,例如如果存储的对象需要不可用的库,并且并非所有 pickle 数据都兼容不同版本的 Python)。默认值:True

  • kwds (关键字参数, 可选) – 要保存到文件的数组。每个数组将以其对应的关键字名称保存到输出文件中。

返回类型:

None

另请参阅

save

以 NumPy 格式将单个数组保存到二进制文件。

savetxt

将数组以纯文本形式保存到文件。

savez_compressed

将多个数组保存到压缩的 .npz 存档中

备注

.npz 文件格式是包含以它们所包含的变量命名的文件的压缩存档。该存档未被压缩,并且存档中的每个文件都包含一个 .npy 格式的变量。有关 .npy 格式的说明,请参阅 numpy.lib.format

当使用 load 打开已保存的 .npz 文件时,将返回 ~lib.npyio.NpzFile 对象。这是一个类似字典的对象,可以查询它的数组列表(使用 .files 属性)以及数组本身。

kwds 中传递的键用作 ZIP 存档内的文件名。因此,键应该是有效的文件名;例如,避免以 / 开头或包含 . 的键。

当使用关键字参数命名变量时,无法将变量命名为 file,因为这会导致 file 参数在对 savez 的调用中被定义两次。

示例

>>> import numpy as np
>>> from tempfile import TemporaryFile
>>> outfile = TemporaryFile()
>>> x = np.arange(10)
>>> y = np.sin(x)

savez 与 *args 一起使用,数组将使用默认名称保存。

>>> np.savez(outfile, x, y)
>>> _ = outfile.seek(0) # Only needed to simulate closing & reopening file
>>> npzfile = np.load(outfile)
>>> npzfile.files
['arr_0', 'arr_1']
>>> npzfile['arr_0']
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

savez 与 **kwds 一起使用,数组将使用关键字名称保存。

>>> outfile = TemporaryFile()
>>> np.savez(outfile, x=x, y=y)
>>> _ = outfile.seek(0)
>>> npzfile = np.load(outfile)
>>> sorted(npzfile.files)
['x', 'y']
>>> npzfile['x']
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])