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
    import joblib
    
    l = list(range(10))
    
    f = open('temp.joblib', 'wb')
    
    # serialization
    joblib.dump(l, f)
    
    f.close()
    		
    f = open('temp.joblib', 'rb')
    
    # deserialization
    print(joblib.load(f))
    
    f.close()
            
    Serialize with File Name
    l = list(range(10))
    
    # serialization
    joblib.dump(l, 'temp.pkl')
    
    # deserialization
    joblib.load('temp.pkl')
    		
    Compress
    # support 'z', ‘gzip’, ‘bz2’, ‘lzma’ and ‘xz’:
    
    l = list(range(10))
    
    # serialization
    joblib.dump(l, 'temp.z')
    
    # deserialization
    joblib.load('temp.z')
    		
    Reference
  • Document