在数据科学与人工智能的应用中,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
在 Notebook 中使用 latexify
latexify.function
装饰器函数可以将您的函数包装成相应的 LaTeX 公式进行美化显示。Jupyter kernel 会识别此包装器,并尝试以 LaTeX 格式显示,而不是原始函数。以下代码示例:
import math
import latexify
@latexify.function
def solve(a,b,c):
return (-b +math.sqrt(b**2-4*a*c))/(2*a)
solve
@latexify.function
def 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.expression
def 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
相同的参数。