當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


Python NumPy load方法用法及代碼示例

Numpy 的 load(~) 方法讀取擴展名為 .npy.npz 的文件,並返回內存映射、Numpy 數組或類似字典的 Numpy 數組。

參數

1.file | file-like objectstringpathlib.Path

要加載的文件。

2. mmap_mode | Nonestring | optional

是否返回內存映射或 Numpy 數組。當您要讀取的數據太大而無法放入內存時,Memory-maps 會派上用場。 Memory-maps 存儲在磁盤中,可以通過切片語法訪問數據(例如 [2:5] )。

允許的值如下:

說明

r

打開文件僅供閱讀。

r+

打開文件以進行讀取和寫入。

w+

打開文件進行讀取和寫入

如果文件不存在,則創建一個新文件。

寫入將覆蓋現有內容。

c

寫入是對內存中的數據執行的,而不是在磁盤上執行的。

這意味著實際數據是隻讀的。

None

將數據加載為 Numpy 數組。

默認情況下,mmap_mode=None

3. allow_pickle | boolean | optional

是否使用 pickling 來加載數組。如果您的數據僅由數字數據類型組成,則不需要進行酸洗。默認情況下,allow_pickle=True

警告

如果 dtype 是數字,則選擇 allow_pickle=False

作為一般經驗法則,如果不需要,則不應使用 pickles,因為不同版本的 Python 和 Numpy 可能會以不同方式解釋 pickles,因此您可能無法加載文件。此外,由於讀取 pickled 文件涉及在文件中運行任意代碼,因此讀者很容易受到惡意攻擊。

4. fix_imports | boolean | optional

僅當您使用 Python 3 讀取使用 Python 2 生成的 pickled 文件時,這才有意義。如果設置為 True ,則可以進行此類讀取。默認情況下,fix_imports=True

5. encoding | string | optional

僅當您使用 Python 3 讀取使用 Python 2 生成的 pickled 文件時,這才有意義。允許的值為 "latin1""ASCII""bytes" 。默認情況下,encoding="ASCII"

返回值

返回類型取決於您正在讀取 .npy 文件還是 .npz 文件以及提供的 mmap_mode

行動

返回類型

mmap_mode=None讀取.npy

numpy 數組

mmap_mode!=None讀取.npy

memmap

正在閱讀.npz

Numpy 數組的類似字典

例子

讀取 .npy 文件

讓我們創建一個.npy 文件來讀取:

x = np.array([3,4,5])
np.save("my_data.npy", x)

這將在與 Python 腳本相同的目錄中創建一個名為 "my_data.npy" 的文件。

將此文件作為 Numpy 數組加載:

y = np.load("my_data.npy")
y



array([3, 4, 5])

將此文件作為 memmap 對象加載:

y = np.load("my_data.npy", "r")
y



memmap([3, 4, 5])

讀取 .npz 文件

.npy 文件不同,.npz 包含一組 Numpy 數組。

創建.npz 文件:

x = np.array([3,4,5])
y = np.array([6,7,8])
np.savez("my_data", my_x=x, my_y=y)

要讀取此.npz 文件:

my_arrays = np.load("my_data.npz")
print("x", my_arrays["my_x"])
print("y", my_arrays["my_y"])



x [3 4 5]
y [6 7 8]

相關用法


注:本文由純淨天空篩選整理自Isshin Inada大神的英文原創作品 NumPy | load method。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。