Python 我可以用符号替换表达式吗?

Python 我可以用符号替换表达式吗?,python,sympy,Python,Sympy,我想用符号的方式检查一下,一个sigmoid函数的导数是用它的sigmoid函数来表示的。我写了下面的代码,打算将表达式替换为符号,但输出不是我所期望的。如何正确地进行此替换 import sympy # define sigmoid functions x = sympy.Symbol('x') sigmoid = lambda x: 1/(1 + sympy.exp(-x)) sigmoid_deriv = sigmoid(x).diff(x) # define symbol X X =

我想用符号的方式检查一下,一个sigmoid函数的导数是用它的sigmoid函数来表示的。我写了下面的代码,打算将表达式替换为符号,但输出不是我所期望的。如何正确地进行此替换

import sympy

# define sigmoid functions
x = sympy.Symbol('x')
sigmoid = lambda x: 1/(1 + sympy.exp(-x))
sigmoid_deriv = sigmoid(x).diff(x)

# define symbol X
X = sympy.Symbol('X')

print(sigmoid_deriv.subs({sigmoid: X}))
输出:

exp(-x)/(1 + exp(-x))**2
X*(1 - X)
所需输出:

X*(1 - X)

谢谢@complementdphenomenon,问题解决了。这是代码

import sympy

# define sigmoid functions
x = sympy.Symbol('x')
sigmoid = 1/(1 + sympy.exp(-x))
sigmoid_deriv = sigmoid.diff(x)

# define symbol X
X = sympy.Symbol('X')

# solve inverse sigmoid function
eq = sympy.Eq(sigmoid, X)
x_lst = sympy.solve(eq, x)

# unpack result
x2 = x_lst[0]

# substitute x as x2
sigmoid_deriv2 = sigmoid_deriv.subs({x: x2})

# simplify `sigmoid_deriv2`
sigmoid_deriv3 = sympy.simplify(sigmoid_deriv2)

# print simplified sigmoid_deriv
print(sigmoid_deriv3)
输出:

exp(-x)/(1 + exp(-x))**2
X*(1 - X)
谢谢。

我认为
print(sigmoid_deriv.subs({x:f(sigmoid)}))
更有意义,
f(sigmoid)
应该通过求解
sigmoid=lambda x:1/(1+sympy.exp(-x))