numpy.savez#

numpy.savez(file, *args, **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”等。

kwds关键字参数,可选

要保存到文件中的数组。每个数组都将使用其对应的关键字名称保存到输出文件。

返回值:

另请参阅

save

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

savetxt

将数组保存到文件作为纯文本。

savez_compressed

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

注释

.npz 文件格式是根据其包含的变量命名的文件的压缩存档。存档未压缩,并且存档中的每个文件都包含一个 .npy 格式的变量。有关 .npy 格式的描述,请参见 numpy.lib.format

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

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

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

示例

>>> 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])