Python Sympy-Lambdify-miningful名称到伪变量
假设我想创建一个带有单个符号的表达式,用Latex编写(因为在Jupyter笔记本中可视化它确实很有帮助)。然后我使用Python Sympy-Lambdify-miningful名称到伪变量,python,sympy,Python,Sympy,假设我想创建一个带有单个符号的表达式,用Latex编写(因为在Jupyter笔记本中可视化它确实很有帮助)。然后我使用lambdify得到一个可以计算多个值的函数。问题是此函数将显示名为\u Dummy\u的变量,如下所示 AoB = sp.symbols(r'\frac{\alpha}{\beta}') expr = 2 * AoB lam = sp.lambdify([AoB], expr, 'numpy') display(lam) Output: <function _lambd
lambdify
得到一个可以计算多个值的函数。问题是此函数将显示名为\u Dummy\u
的变量,如下所示
AoB = sp.symbols(r'\frac{\alpha}{\beta}')
expr = 2 * AoB
lam = sp.lambdify([AoB], expr, 'numpy')
display(lam)
Output: <function _lambdifygenerated(_Dummy_1198)>
AoB=sp.symbols(r'\frac{\alpha}{\beta}')
expr=2*AoB
lam=sp.lambdify([AoB],表达式“numpy”)
显示器(林)
输出:
现在,想象一个包装器函数:在它里面我定义了几个sympy表达式,每个表达式使用不同的Latex符号。我给这个函数一个索引参数,它用于返回相应表达式的lambdify版本
当lambdify函数返回时,我很想知道\u Dummy\u
指的是什么,特别是当lambdify函数需要计算两个或多个参数时。例如,在上面的示例中,如果调用函数参数AoB
(我可以将其解释为alpha-over-beta),则没有问题
理想情况下,我希望创建一个符号,该符号既可以接受Latex(用于可视化目的),也可以接受在创建伪变量时使用的回退符号(例如,使用lambdify)。可能吗?最简单的解决方案可能是保持latex符号到普通符号的映射,并在lambdizing之前替换它,如
AoB=sp.symbols(r'\frac{\alpha}{\beta}')
映射={AoB:Symbol('AoB')}
expr=2*AoB
lam=sp.lambdify([mapping[AoB]],expr.xreplace(mapping),'numpy')