Python 保存/加载sympy lambdifed表达式
设想以下三个步骤:Python 保存/加载sympy lambdifed表达式,python,lambda,sympy,Python,Lambda,Sympy,设想以下三个步骤: 我使用Symphy构建了一个大的、有点复杂的表达式(这个过程花费了很多时间) 然后使用sympy.lambdify(也很慢)将该表达式转换为lambda函数 然后评估所述函数(fast) 理想情况下,步骤1和2只执行一次,而步骤3将进行多次评估。不幸的是,步骤3的计算会随着时间的推移而分散(以及不同的python会话!) 我正在寻找一种将“lambdified”表达式保存到磁盘的方法,以便在以后加载并使用它们。不幸的是,pickle不支持lambda函数。我的lambda
- 我使用Symphy构建了一个大的、有点复杂的表达式(这个过程花费了很多时间)李>
- 然后使用
(也很慢)将该表达式转换为lambda函数李>sympy.lambdify
- 然后评估所述函数(fast)
dill.dump(f, open("myfile", "wb"))
之后,您可以使用以下行加载函数。这也可以从另一个python脚本中完成
f_new=dill.load(open("myfile", "rb"))
上述方法效果良好。
在Python3.6中,我需要明确指出保存和加载的文件是二进制文件。因此,将上述代码修改为:
dill.dump(f,open(“myfile”,“wb”))
以及阅读:
f_new=dill.load(open(“myfile”,“rb”))
我根据G.Bernstein的评论编辑了我的答案,以便与python 3兼容
f_new=dill.load(open("myfile", "rb"))