numpy.lib.npyio.NpzFile — NumPy v2.2 Manual (original) (raw)

class numpy.lib.npyio.NpzFile(fid)[source]#

A dictionary-like object with lazy-loading of files in the zipped archive provided on construction.

NpzFile is used to load files in the NumPy .npz data archive format. It assumes that files in the archive have a .npy extension, other files are ignored.

The arrays and file strings are lazily loaded on either getitem access using obj['key'] or attribute lookup usingobj.f.key. A list of all files (without .npy extensions) can be obtained with obj.files and the ZipFile object itself usingobj.zip.

Parameters:

fidfile, str, or pathlib.Path

The zipped archive to open. This is either a file-like object or a string containing the path to the archive.

own_fidbool, optional

Whether NpzFile should close the file handle. Requires that fid is a file-like object.

Examples

import numpy as np from tempfile import TemporaryFile outfile = TemporaryFile() x = np.arange(10) y = np.sin(x) np.savez(outfile, x=x, y=y) _ = outfile.seek(0)

npz = np.load(outfile) isinstance(npz, np.lib.npyio.NpzFile) True npz NpzFile 'object' with keys: x, y sorted(npz.files) ['x', 'y'] npz['x'] # getitem access array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]) npz.f.x # attribute lookup array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

Attributes:

fileslist of str

List of all files in the archive with a .npy extension.

zipZipFile instance

The ZipFile object initialized with the zipped archive.

fBagObj instance

An object on which attribute can be performed as an alternative to getitem access on the NpzFile instance itself.

allow_picklebool, optional

Allow loading pickled data. Default: False

pickle_kwargsdict, optional

Additional keyword arguments to pass on to pickle.load. These are only useful when loading object arrays saved on Python 2 when using Python 3.

max_header_sizeint, optional

Maximum allowed size of the header. Large headers may not be safe to load securely and thus require explicitly passing a larger value. See ast.literal_eval for details. This option is ignored when allow_pickle is passed. In that case the file is by definition trusted and the limit is unnecessary.

Methods