[英]How to pickle a scipy.stats distribution (can't pickle instancemethod objects)
How can I save a scipy.stats distribution? 如何保存scipy.stats发行版?
For example: 例如:
a = [scipy.stats.norm(0,1), scipy.stats.norm(0,2)]
with open("distro.pickle", 'w') as f:
pickle.dump(a, f)
Doing this I get a TypeError: can't pickle instancemethod objects
这样做我得到一个
TypeError: can't pickle instancemethod objects
They do not support pickling. 他们不支持酸洗。 The easier way to "solve" your problem is to pickle the arguments and, when unpickling, create a new object:
“解决”你的问题的更简单方法是挑选参数,并在unpickling时创建一个新对象:
>>> from collections import namedtuple
>>> Norm = namedtuple('Norm', 'mu variance')
>>> def pickle_norm(n):
... return pickle.dumps(Norm(*n.args))
...
>>> def unpickle_norm(s):
... return scipy.stats.norm(*pickle.loads(s))
...
>>> s = pickle_norm(scipy.stats.norm(5, 10))
>>> d = unpickle_norm(s)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.