我想打印一个表达式来仔细检查它是我想要的,没有任何操作或简化。这是一个简单的例子:
from sympy import *
import abc
init_session()
sigma_1, sigma_0, mu_1, mu_0,x = symbols("sigma_1 sigma_0 mu_1 mu_0 x")
diff = log(1/(sqrt(2*pi*sigma_1**2)) * exp(-(x-mu_1)**2/(2*sigma_1**2))) - log(1/(sqrt(2*pi*sigma_0**2)) * exp(-(x-mu_0)**2/(2*sigma_0**2)))
diff
这有点操纵了表达式,但我希望看到它按照我输入的顺序打印出来,所以我可以很容易地检查它已经记下来的公式。
有办法吗?
答案 0 :(得分:1)
使用
可以避免一些简化sympify("log(1/(sqrt(2*pi*sigma_1**2)) * exp(-(x-mu_1)**2/(2*sigma_1**2))) - log(1/(sqrt(2*pi*sigma_0**2)) * exp(-(x-mu_0)**2/(2*sigma_0**2)))", evaluate=False)
但是,有些简化是无法避免的。例如,无法以相同的顺序保留术语,而1/x
和x**-1
等表达式在内部以相同的方式表示。话虽如此,肯定会有sympify(evaluate=False)
可以改进的地方。