可以说我想用乳胶编写一个带有单个符号的表达式(因为在Jupyter笔记本中可视化它确实很有帮助)。然后,我使用lambdify
可以评估多个值的函数。问题在于此函数将显示一个名为的变量_Dummy_
,如下所示。
AoB = sp.symbols(r'\frac{\alpha}{\beta}')
expr = 2 * AoB
lam = sp.lambdify([AoB], expr, 'numpy')
display(lam)
Output: <function _lambdifygenerated(_Dummy_1198)>
现在,想象一个包装函数:在其中定义了几个sympy表达式,每个表达式都使用不同的Latex符号。我给该函数提供一个索引参数,该参数用于返回相应表达式的lambdify版本。
当lambdify函数返回时,我真的很想知道所指的_Dummy_
是什么,尤其是当lambdify函数需要两个或多个参数进行求值时。例如,在上面的示例中,如果调用了函数参数AoB
(我可以将其解释为beta之上的alpha),我将没有问题。
理想情况下,我希望创建一个既可以接受Latex(出于可视化目的)又可以接受要在创建Dummy变量(例如,使用lambdify)时使用的后备符号的Symbol。可能吗?
可能最简单的解决方案是保留乳胶符号到普通符号的映射,并在进行lambdizing之前将其替换,例如
AoB = sp.symbols(r'\frac{\alpha}{\beta}')
mapping = {AoB: Symbol('AoB')}
expr = 2 * AoB
lam = sp.lambdify([mapping[AoB]], expr.xreplace(mapping), 'numpy')
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句