numpy.savez#
- numpy.savez(file, *args, allow_pickle=True, **kwds)[源码]#
将多个数组保存到未压缩的
.npz
格式的单个文件中。将数组作为关键字参数提供,以将其存储在输出文件中对应的名称下:
savez(fn, x=x, y=y)
。如果数组被指定为位置参数,即
savez(fn, x, y)
,它们的名称将是 arr_0、arr_1 等。- 参数:
- file文件、字符串或 pathlib.Path
文件名(字符串)或一个打开的文件(类文件对象),数据将保存到其中。如果文件是字符串或 Path 对象,则会自动追加
.npz
扩展名,除非它已经存在。- args参数,可选
要保存到文件的数组。请使用关键字参数(参见下面的 kwds)为数组分配名称。指定为 args 的数组将被命名为“arr_0”、“arr_1”等等。
- allow_pickle布尔值,可选
允许使用 Python pickle 保存对象数组。不允许使用 pickle 的原因包括安全性(加载 pickle 数据可以执行任意代码)和可移植性(pickle 对象可能无法在不同的 Python 安装上加载,例如,如果存储的对象需要不可用的库,并且并非所有 pickle 数据都与不同版本的 Python 兼容)。默认值:True
- 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)
使用带 *args 的
savez
时,数组以默认名称保存。>>> 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])
使用带 **kwds 的
savez
时,数组以关键字名称保存。>>> 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])