首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Sympy - Lambdify - miningful名称到虚拟变量

Sympy - Lambdify - miningful名称到虚拟变量
EN

Stack Overflow用户
提问于 2019-10-30 07:31:06
回答 1查看 300关注 0票数 5

假设我想创建一个使用Latex编写的带有单个符号的表达式(因为在Jupyter Notebook中将其可视化非常有用)。然后,我使用lambdify得到一个函数,我可以对多个值进行求值。问题是这个函数将显示一个名为_Dummy_的变量,如下所示。

代码语言:javascript
复制
AoB = sp.symbols(r'\frac{\alpha}{\beta}')
expr = 2 * AoB
lam = sp.lambdify([AoB], expr, 'numpy')
display(lam)

Output: <function _lambdifygenerated(_Dummy_1198)>

现在,假设有一个包装器函数:在其中我定义了几个渐近表达式,每个表达式都使用不同的Latex符号。我为这个函数提供了一个索引参数,用于返回相应表达式的lambdify版本。

当lambdify函数返回时,我真的很想知道_Dummy_指的是什么,特别是当lambdify函数需要计算两个或更多参数时。例如,在上面的例子中,如果函数参数被称为AoB (我可以将其解释为alpha对beta),我就没有问题。

理想情况下,我希望创建一个既能接受Latex (出于可视化目的)又能在创建虚拟变量时使用的备用符号(例如,使用lambdify)的符号。有可能吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-10-31 07:27:17

可能最简单的解决方案是保持latex符号到普通符号的映射,并在lambdifying之前替换它,比如

代码语言:javascript
复制
AoB = sp.symbols(r'\frac{\alpha}{\beta}')
mapping = {AoB: Symbol('AoB')}
expr = 2 * AoB
lam = sp.lambdify([mapping[AoB]], expr.xreplace(mapping), 'numpy')
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58616786

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档