R S*_*R S 3 python numpy pickle
当尝试按照numpy(我认为)中的定义来挑选对象Inf时,转储变为Ok但是加载失败:
>>> cPickle.dump(Inf, file("c:/temp/a.pcl",'wb'))
>>> cPickle.load(file("c:/temp/a.pcl",'rb'))
Traceback (most recent call last):
File "<pyshell#257>", line 1, in <module>
cPickle.load(file("c:/temp/a.pcl",'rb'))
ValueError: could not convert string to float
>>> type(Inf)
<type 'float'>
Run Code Online (Sandbox Code Playgroud)
这是为什么?此外 - 有没有办法解决这个问题?我想腌制含有Inf的东西 - 将它改成别的东西会破坏程序的优雅......
谢谢
如果指定一个大于零的pickle协议,它将起作用.协议通常指定为-1,表示使用最新和最好的协议:
>>> cPickle.dump(Inf, file("c:/temp/a.pcl",'wb'), -1)
>>> cPickle.load(file("c:/temp/a.pcl",'rb'))
1.#INF -- may be platform dependent what prints here.
Run Code Online (Sandbox Code Playgroud)