numpy.savez#
- numpy.savez(file, *args, allow_pickle=True, **kwds)[source]#
將多個陣列儲存到單一檔案,以未壓縮的
.npz
格式儲存。以關鍵字引數提供陣列,以將它們儲存在輸出檔案中對應的名稱下:
savez(fn, x=x, y=y)
。如果陣列是以位置引數指定,例如
savez(fn, x, y)
,則它們的名稱將會是 arr_0、arr_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])