专栏名称: 新语数据故事汇
《新语数据故事汇,数说新语》科普数据科学、讲述数据故事,深层次挖掘数据价值。
目录
相关文章推荐
国民弟弟的跨境十年  ·  嘉信证券开户全流程实操指南(超详细版) ·  昨天  
国民弟弟的跨境十年  ·  嘉信证券开户全流程实操指南(超详细版) ·  昨天  
中汇信达深圳税务师事务所  ·  中国人民银行 ... ·  2 天前  
中汇信达深圳税务师事务所  ·  中国人民银行 ... ·  2 天前  
51好读  ›  专栏  ›  新语数据故事汇

让算法表达更清晰:latexify 将 Python 代码转为 LaTeX 公式和伪代码

新语数据故事汇  · 公众号  ·  · 2024-10-26 09:44

正文

在数据科学与人工智能的应用中,Python无疑是流行的编程语言之一。从数据处理、算法构建到模型训练,Python几乎贯穿了每一个技术环节。然而,随着项目复杂性的增加,公式表达的需求也在增长。特别是当我们将算法公式化呈现给读者或评审时,清晰、美观的公式表达尤为重要。而Latex作为公式编辑的标准,拥有强大而广泛的应用。

不过,Python代码到Latex的转换往往手工繁琐,效率较低。在这种情况下, latexify 可以让Python代码可以一键转化为Latex公式,使得代码与数学公式之间的转换变得流畅而便捷。

我们在《 Handcalcs,让python科学计算过程更清晰 》介绍类似功能,相对于Handcalcs 来说latexify更方便、功能更强大。从github 星星上可以看出latexify 更受欢迎。

latexify 是什么

latexify 是一个 Python 包,可以将一段 Python 源代码编译为对应的 LaTeX 表达式。

latexify 提供以下功能:

  • 库函数,用于将 Python 源代码基于抽象语法树(AST)编译为 LaTeX 表达式。

  • 使用IPython 类、 装饰器(Decorators) ,用于美化显示已编译的函数。Notebook 内良好展现。

  • 可以将python code 逆向为伪代码,方便展示算法,也支持数学符号。

安装 latexify

pip install   latexify-py

在 Notebook 中使用 latexify

latexify.function 装饰器函数可以将您的函数包装成相应的 LaTeX 公式进行美化显示。Jupyter kernel  会识别此包装器,并尝试以 LaTeX 格式显示,而不是原始函数。以下代码示例:

import mathimport latexify
@latexify.functiondef solve(a,b,c): return (-b +math.sqrt(b**2-4*a*c))/(2*a) solve

@latexify.functiondef F(n):  if n==0:    return 0  elif n==1:    return 1  else:    return F(x-1)+F(n-2)F

调用装饰器包装后的函数时,其行为与原始函数完全一致。

对装饰器包装后的函数应用 str 将返回对应的 LaTeX 源代码。

latexify.expression 的功能与 latexify.function 类似,但它在输出时不包含函数签名。

@latexify.expressiondef solve(a, b, c):    return (-b + math.sqrt(b**2 - 4 * a * c)) / (2 * a)
solve

直接获取 LaTeX 表达式

也可以使用 latexify.get_latex ,它接收一个函数并直接返回该函数对应的 LaTeX 表达式。 latexify.get_latex 可以应用与 latexify.function 相同的参数。

def






请到「今天看啥」查看全文