Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Sympy-Lambdify-miningful名称到伪变量_Python_Sympy - Fatal编程技术网

Python Sympy-Lambdify-miningful名称到伪变量

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

假设我想创建一个带有单个符号的表达式,用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 _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')