我目前正在使用Sympy 1.0和Python 2.7,我的目标是用符号替换表达式中的每个数字参数。
例如:
2 * x + 3 * y - 10 * z -> a * x + b * y - c * z
到目前为止,我使用expression.atoms(Number)
来获取数值参数列表,以便稍后使用.subs
替换它们,或者使用.replace
将所有内容写入字符串。但是,我遇到的问题包括:
expression = sympy.simpify("x - z")
-z
实际为-1 * z
,如果我将表达式分析为树...但-1
不会出现在expression.atoms(Number)
的结果中,所以我无法替换它
即使将表达式转换为字符串然后使用.replace
也无济于事,因为-1 * z
始终写为-z
。
我可能忽略了一些解决方案,但到目前为止,我被困住了。你能帮助我吗?提前感谢您的时间。
答案 0 :(得分:1)
事实上,当我第一次尝试使用.subs
时,事实证明我可能犯了一个愚蠢的错误。帕特里克在评论中指出,.subs
在这种情况下完美无缺。