[英]Find functions in sympy expression
我正在寻找一种在Sympy表达式中查找功能参数的强大方法。 例如,在下面的示例中,如何从operator
检索f
?
import sympy
x, y = sympy.symbols('x y')
f = sympy.Function('f')
operator = x*f(x, y).diff(x) + y*f(x, y)
print(operator.free_symbols)
# prints {x, y}
方法expr.atoms(class)
返回expr
中作为该类实例的所有对象的集合。 所以,
operator.atoms(sympy.Function)
将返回f(x, y)
。 如果您希望忽略该函数的参数,请使用
[a.func for a in operator.atoms(sympy.Function)]
(对于SymPy对象a
, a.func
是其“函数”部分, a.args
是其“参数”部分。)
注意,如果operator
包括sin(x)
,那么上面的代码也会包含它。 仅返回未定义 (未内置)的功能,代替sympy.Function
通过sympy.function.AppliedUndef
如在类选择atoms
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.