numpy.savez#

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布林值,選用

允許使用 Python pickles 儲存物件陣列。不允許 pickles 的原因包括安全性 (載入 pickled 資料可能會執行任意程式碼) 和可攜性 (pickled 物件可能無法在不同的 Python 安裝環境中載入,例如,如果儲存的物件需要無法使用的程式庫,而且並非所有 pickled 資料都與不同版本的 Python 相容)。預設值:True

kwds關鍵字引數,選用

要儲存到檔案的陣列。每個陣列都會以其對應的關鍵字名稱儲存到輸出檔案。

傳回值:

另請參閱

save

將單一陣列以 NumPy 格式儲存到二進位檔案。

savetxt

將陣列以純文字格式儲存到檔案。

savez_compressed

將多個陣列儲存到壓縮的 .npz 封存檔

說明

.npz 檔案格式是一個 zip 壓縮檔,其中的檔案以它們包含的變數命名。此壓縮檔未經壓縮,且壓縮檔中的每個檔案都包含一個 .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])