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


Python numpy load用法及代碼示例


本文簡要介紹 python 語言中 numpy.load 的用法。

用法:

numpy.load(file, mmap_mode=None, allow_pickle=False, fix_imports=True, encoding='ASCII')

.npy.npz 或 pickled 文件加載數組或 pickled 對象。

警告

加載包含對象數組的文件使用pickle 模塊,該模塊對錯誤或惡意構造的數據不安全。考慮傳遞 allow_pickle=False 以加載已知不包含對象數組的數據,以便更安全地處理不受信任的源。

參數

file file-like 對象、字符串或 pathlib.Path

要讀取的文件。 File-like 對象必須支持 seek()read() 方法。 pickle 文件要求 file-like 對象也支持 readline() 方法。

mmap_mode {無,‘r+’,‘r’,‘w+’,‘c’},可選

如果不是“無”,則使用給定模式對文件進行內存映射(有關模式的詳細說明,請參閱 numpy.memmap )。 memory-mapped 數組保存在磁盤上。然而,它可以像任何 ndarray 一樣被訪問和切片。內存映射對於訪問大文件的小片段而不將整個文件讀入內存特別有用。

allow_pickle 布爾型,可選

允許加載存儲在 npy 文件中的 pickle 對象數組。不允許 pickle 的原因包括安全性,因為加載 pickle 數據可以執行任意代碼。如果不允許泡菜,加載對象數組將失敗。默認值:假

fix_imports 布爾型,可選

僅在在 Python 3 上加載 Python 2 生成的 pickle 文件時有用,其中包括包含對象數組的 npy/npz 文件。如果 fix_imports 為 True,pickle 將嘗試將舊的 Python 2 名稱映射到 Python 3 中使用的新名稱。

encoding str,可選

讀取 Python 2 字符串時使用什麽編碼。僅在在 Python 3 中加載 Python 2 生成的 pickle 文件時有用,其中包括包含對象數組的 npy/npz 文件。不允許使用 ‘latin1’、“ASCII”和 ‘bytes’ 以外的值,因為它們會損壞數字數據。默認值:“ASCII”

返回

result 數組、元組、字典等

數據存儲在文件中。對於.npz 文件,必須關閉返回的NpzFile 類實例,以避免泄漏文件說明符。

拋出

操作係統錯誤

如果輸入文件不存在或無法讀取。

UnpicklingError

如果 allow_pickle=True ,但文件不能作為泡菜加載。

ValueError

該文件包含一個對象數組,但給出了allow_pickle=False

注意

  • 如果文件包含泡菜數據,則返回存儲在泡菜中的任何對象。

  • 如果文件是.npy 文件,則返回單個數組。

  • 如果文件是 .npz 文件,則返回一個類似字典的對象,其中包含 {filename: array} 鍵值對,存檔中的每個文件都有一個。

  • 如果文件是 .npz 文件,則返回值支持上下文管理器協議,其方式與 open 函數類似:

    with load('foo.npz') as data:
        a = data['a']

    退出‘with’ 塊時,底層文件說明符關閉。

例子

將數據存儲到磁盤,然後再次加載:

>>> np.save('/tmp/123', np.array([[1, 2, 3], [4, 5, 6]]))
>>> np.load('/tmp/123.npy')
array([[1, 2, 3],
       [4, 5, 6]])

將壓縮數據存儲到磁盤,然後再次加載:

>>> a=np.array([[1, 2, 3], [4, 5, 6]])
>>> b=np.array([1, 2])
>>> np.savez('/tmp/123.npz', a=a, b=b)
>>> data = np.load('/tmp/123.npz')
>>> data['a']
array([[1, 2, 3],
       [4, 5, 6]])
>>> data['b']
array([1, 2])
>>> data.close()

Mem-map 存儲數組,然後直接從磁盤訪問第二行:

>>> X = np.load('/tmp/123.npy', mmap_mode='r')
>>> X[1, :]
memmap([4, 5, 6])

相關用法


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