joblib
  • provide a replacement for pickle to work efficiently on arbitrary Python objects containing large data, in particular large numpy arrays
  • As of Python 3.8 and numpy 1.16, pickle protocol 5 introduced in PEP 574 supports efficient serialization and de-serialization for large data buffers
  • joblib.load() should therefore never be used to load objects from an untrusted source
  • Serialize with File Stream
    1. import joblib
    2.  
    3. l = list(range(10))
    4.  
    5. f = open('temp.joblib', 'wb')
    6.  
    7. # serialization
    8. joblib.dump(l, f)
    9.  
    10. f.close()
    1. f = open('temp.joblib', 'rb')
    2.  
    3. # deserialization
    4. print(joblib.load(f))
    5.  
    6. f.close()
    Serialize with File Name
    1. l = list(range(10))
    2.  
    3. # serialization
    4. joblib.dump(l, 'temp.pkl')
    5.  
    6. # deserialization
    7. joblib.load('temp.pkl')
    Compress
    1. # support 'z', ‘gzip’, ‘bz2’, ‘lzma’ and ‘xz’:
    2.  
    3. l = list(range(10))
    4.  
    5. # serialization
    6. joblib.dump(l, 'temp.z')
    7.  
    8. # deserialization
    9. joblib.load('temp.z')
    Reference
  • Document