Sympy:取代" -1"在表达式?

时间:2017-01-13 15:51:08

标签: python sympy

我目前正在使用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

我可能忽略了一些解决方案,但到目前为止,我被困住了。你能帮助我吗?提前感谢您的时间。

1 个答案:

答案 0 :(得分:1)

事实上,当我第一次尝试使用.subs时,事实证明我可能犯了一个愚蠢的错误。帕特里克在评论中指出,.subs在这种情况下完美无缺。