想象一下以下三个步骤的过程:
sympy.lambdify
(同样慢)将该表达式转换为lambda函数。在理想情况下,步骤1和2只执行一次,而步骤3将被多次评估。不幸的是,步骤3的评估是随着时间的推移而分散的(以及不同的python会话!)在
我正在寻找一种将“lambdified”表达式保存到磁盘的方法,以便以后可以加载和使用它们。不幸的是pickle不支持lambda函数。我的lambda函数也使用numpy。在
当然,我可以手工创建一个匹配函数并使用它,但这似乎效率低下,而且容易出错。在
你可以用“莳萝”,如这里所述
{a1}
以及
How to use dill to serialize a class definition?
您必须导入dill并将变量'recursive'设置为值“True”。在
假设f是你的lambdified函数。您可以使用以下方法将其转储到磁盘。在
^{pr2}$然后,您可以使用以下行加载函数。这也可以从另一个python脚本完成。在
上述方法效果良好。 在python3.6的例子中,我需要显式地指出保存和加载的文件是二进制的。因此,将上述代码修改为:
dill.dump(f, open("myfile", "wb"))
阅读:
f_new=dill.load(open("myfile", "rb"))
相关问题 更多 >
编程相关推荐