天天看點

Python之joblib:joblib庫的簡介、安裝、使用方法之詳細攻略

joblib庫的簡介

       Joblib是一組在Python中提供輕量級管道的工具。特别是:

函數的透明磁盤緩存和延遲重新計算(記憶模式)

簡單并行計算

       Joblib經過了優化,特别是在處理大型資料時速度更快、更健壯,并且對numpy數組進行了特定的優化。

文檔說明:

https://joblib.readthedocs.io

下載下傳位址:

https://pypi.python.org/pypi/joblib#downloads

源碼位址:

https://github.com/joblib/joblib

報告問題:

https://github.com/joblib/joblib/issues

joblib庫的安裝

pip install joblib

Python之joblib:joblib庫的簡介、安裝、使用方法之詳細攻略

joblib庫的使用方法

1、輸出值的透明快速磁盤緩存

       Python函數的類似memoize或make的功能,适用于任意Python對象,包括非常大的numpy數組。通過将操作寫成一組具有定義良好的輸入和輸出的步驟,将持久性和流執行邏輯與域邏輯或算法代碼分離開來:Python函數。Joblib可以節省他們的計算到磁盤和重新運作,隻有在必要時:

>>> from joblib import Memory

>>> cachedir = 'your_cache_dir_goes_here'

>>> mem = Memory(cachedir)

>>> import numpy as np

>>> a = np.vander(np.arange(3)).astype(np.float)

>>> square = mem.cache(np.square)

>>> b = square(a)                                   # doctest: +ELLIPSIS

________________________________________________________________________________

[Memory] Calling square...

square(array([[0., 0., 1.],

      [1., 1., 1.],

      [4., 2., 1.]]))

___________________________________________________________square - 0...s, 0.0min

>>> c = square(a)

>>> # The above call did not trigger an evaluation

2、令人尴尬的并行助手:使它容易編寫可讀并行代碼和調試它迅

>>> from joblib import Parallel, delayed

>>> from math import sqrt

>>> Parallel(n_jobs=1)(delayed(sqrt)(i**2) for i in range(10))

[0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0]

3、快速壓縮持久化

       替代pickle,有效地處理包含大資料的Python對象(joblib)。轉儲& joblib。負載)。