python – 将函数从sympy转换为numpy(属性错误)

import numpy as np
import sympy as sym
from numpy import sin
from sympy import symbols, diff

func = lambda x: sin(x)
x    = symbols('x')
print diff(func(x),x)

如果我用多项式替换我的函数,或者我将trig函数直接放入diff运算符,这是有效的.但是在这种格式中,我得到了AttributeError:sin.

基本上我认为python不能识别func只是一个它知道如何符号集成的trig函数.我可能只有同情导入罪,然后事情会起作用,但后来我坚持使用func在sympy命名空间中引用sin,并且我想用func进行未来的事情,这需要在numpy命名空间中使用sin来定义它.

最佳答案 您应该使用SymPy函数以符号方式构建表达式,然后使用lambdify将它们转换为可以使用NumPy计算的内容.

点赞