Cpickle && pickle
cPickle是用C语言实现的,pickle是用纯python语言实现的,相比,cPickle的读写效率高一些。
尝试导入
try:
import cPickle as pickle
except ImportError:
import pickle
保存变量
dir = {bird:0,pig:1,cat:2,dog:3}
f = open('animal.pkl','wb')
pickle.dump(dir,f)
f.close()
joblib
文档:https://joblib.readthedocs.io/en/latest/
相比于pickle更加高效
from joblib import *
变量持久化
Python中的变量存储到本地,例
dump(value,filename)
参数:
- value 变量名
- filename 文件名
- compress 整数类型0-9或布尔值,数字越大压缩效果越好,但速度越慢(文件后缀‘.z’, ‘.gz’, ‘.bz2’, ‘.xz’ ,‘.lzma’)
- protocol 1是使用老的二进制协议,2是使用新的二进制协议
变量提取
value = load(file_name)
函数结果缓存
缓存某一个函数的运行结果,再次调用此函数且参数相同时,不用重新计算
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)
### 再次运行命令时不会重新计算
c = square(a)