给定一个sympy表达式,是否有一种简单的方法生成Python代码(最终我想要一个.py或者.pyc文件)?我想这个代码将包含一个函数,该函数提供任何必要的输入,并返回表达式的值。我经常需要生成Python代码来计算一些很难推导的东西,比如nasty nonlinear function的Jacobian矩阵。 我可以使用sympy为我想要的非线性功能派生表达式。然后我想从所得到的sympy表达式生成Python代码,并将该Python代码保存到自己的模块中。Sympy具有其他几种语言的代码生成能力,但没有Python。 有没有一种简单的方法从sympy中获取Python代码呢?看起来 sympy.python 或者只是 str(expression) 是目前可用的方式(参见 smichr 的答案和 Oliver W. 的评论),并且它们适用于简单的标量表达式。
但这对于像雅各比矩阵之类的东西没有什么帮助,而 sympy.printing.print_ccode 对于矩阵也无法处理。我想,能够处理将矩阵打印到另一种语言的代码,必须假定目标语言支持矩阵,对于 Python 而言,这可能意味着依赖于诸如 numpy 等库的存在。如果存在一种生成 numpy 代码的方法,那就太好了,但好像并没有这样的方法。
但这对于像雅各比矩阵之类的东西没有什么帮助,而 sympy.printing.print_ccode 对于矩阵也无法处理。我想,能够处理将矩阵打印到另一种语言的代码,必须假定目标语言支持矩阵,对于 Python 而言,这可能意味着依赖于诸如 numpy 等库的存在。如果存在一种生成 numpy 代码的方法,那就太好了,但好像并没有这样的方法。