Python 代码转 Latex 公式,这个开源库用一行代码帮你搞定

latex Algorithms伪代码规范 latex Algorithms伪代码规范, 详细介绍了伪代码需要调用的包,以及修改algorithms的默认设置。阐述了原理 立即下载

点击上方“机器学习算法那些事”,选择“星标”公众号

重磅干货,第一时间送达

转自 | 机器之心

数学是数据科学和机器学习的重要基础,数学运算的结果对于机器学习项目而言是至关重要的。在编写代码时,我们常常需要定义数学公式的计算形式。像 S=r^2 这样简单的数学公式,大概不会出现拼写错误。但如果是下面这样的公式呢?

图源:知乎用户 @马啃菠箩

还记得数学老师密密麻麻的板书吗?人们习惯于手写公式的运算过程。而如果计算机编程语言能够显示出类似于手写公式的计算过程,检查公式运算是否准确就可以轻松多了吧。

近日,GitHub 上一个名叫 handcalcs 的开源库就解决了这个问题。

项目地址:https://github.com/connorferster/handcalcs

handcalcs 库:将 Python 计算代码转换为 Latex 公式

handcalcs 库可将 Python 计算代码自动渲染为 Latex 公式,呈现方式类似于手写的公式计算:先编写符号公式,再代入具体数字,最后得出结果。

正如上面的演示样例所示,计算机能够识别的公式形式是:

而人们更习惯的是如下形式的数学公式:

handcalcs 的功能就是,将数学公式和运算过程以人们更容易理解的形式展示出来。

数学计算的结果往往会影响后续代码的运行过程,而复杂的数学公式更容不得一点错漏,因此对于包含较多复杂数学公式的 Python 代码,用 handcalcs 进行自查或许是有必要的。

如何使用 handcalcs?

那么,这个开源库要如何应用呢?

基本用法 1:Jupyter 单元格魔法函数

handcalcs 的设计初衷是在 Jupyter Notebook 或 Jupyter Lab 中作为单元格魔法函数来使用。

首先,引入 handcalcs 模块并运行单元格:

import handcalcs.render

接下来,在想要使用 handcalcs 的单元格上面添加一行魔法函数 %%render:

%%render

例如:

%%render
a = 2
b = 3
c = 2*a + b/3

如果系统安装了 Latex 环境,你还可以将 notebook 导出成 pdf 格式文件。

基本用法 2:函数装饰器 @handcalc()

除了在 Jupyter cell 中使用外,在 Python 的函数中也可以使用 handcalcs。

首先导入 @handcalc() 装饰器:

from handcalcs.decorator import handcalc

然后编写函数。注意:函数必须 return locals():

@handcalc()
def my_calc(x, y, z):
  a = 2*x / y
  b = 3*a
  c = (a + b) / z
  return locals()
@handcalc(left: str = "", right: str = "", jupyter_display: bool = False)

返回一个由 (latex_code: str, locals: dict) 组成的元组,其中 locals 是函数命名空间范围内所有变量的字典。

其他功能

有些公式的参数量较多,如果按照常规的格式显示在一列,会浪费大量空间。而使用 handcalcs,只需添加注释标签# Parameters 就能让参数以三列的形式显示出来:

而有些公式的计算过程非常繁琐,也会占用大量显示空间,只需使用标签# Short 就能让运算过程的显示行数减少:

反之,如果你比较喜欢推导等式对齐的方式,可以使用# Long 标签显示。

有时你并不需要代入数值计算,只需要以符号的形式显示数学计算公式。那么,你需要使用# Symbolic 标签:

handcalcs 的功能本身还可以解决编程中的小问题,即在 Python 中,显示多个变量的值通常需要多个 print() 语句,而使用 handcalcs 能让事情变得简单许多:

很多开发者喜欢用_表示公式中的下标,handcalcs 可以将其显示出来,甚至多级下标也可以通过嵌套的形式得到显示。

数学公式中经常出现希腊字母(如「pi」、「eta」等),只要在代码中编写出对应的英文名,比如 alpha、beta,handcalcs 就可以显示出希腊字母:

不只是简单的数学公式,复杂公式也不在话下,比如含有积分的公式:

缺陷

虽然用处多多,但项目作者表示,handcalcs 仍存在一些小缺陷。

首先,handcalcs 并不适用于 collections 这种数据类型,例如 list、tuple、dict 等。

其次是在变量名方面,handcalcs 是针对 Jupyter 环境设计的。如果在 notebook 上重复使用变量名,则可能导致错误的数学运算。

handcalcs 虽然有些小瑕疵,但它对开发者而言颇有帮助。感兴趣的话,快来动手试一下吧!

555时基芯片的5种经典电路设计:从方波发生器到PWM调光实战 本文深入解析了555时基芯片的5种经典电路设计,从基础的无稳态方波发生器、单稳态触发器,到实用的占空比可调PWM信号源,并重点介绍了如何引入TVS保护电路增强系统鲁棒性。最后通过一个带保护的PWM LED调光台灯实战项目,综合展示了信号生成、功率驱动与电路保护的核心技术,是电子爱好者掌握模拟电路设计与应用的绝佳指南。 阅读详情

相关推荐

数据获取竟如此简单——全球SRTM 90m DEM V4.1数据

SRTM(Shuttle Radar Topography Mission)是由NASA联合国际合作伙伴开展的雷达地形测绘项目,通过航天飞机搭载的合成孔径雷达系统,于2000年通过发射并接收地表反射的雷达信号,获取全球三维地形数据,这一任务填补了高精度全球地形数据的空白。而本文通过十余行的python代码,就更简单、方便地获取这些数据。

m0_38065162的博客 1401

latex排版原理 常用算法排版伪代码模块 添加注释以及注意事项

首先说一下latex关于排版的内部原理,然后说一下关于latex算法排版包的介绍,接着说一下常用的两种排版代码,最后讲一下排版的一些注意事项

biao2488890051的博客 3万+

记录:rk3568适配开源GPU驱动(panfrost)

摘要:本文介绍了在RK3568芯片上移植Mali-G52 GPU驱动的过程。主要包括内核dts文件修改和内核配置调整两部分。

xuesong10210的博客 2239

latex伪代码添加注释_Visual Studio Code (vscode)配置LaTeX

前言LaTeX 作为一种强大的排版系统,对于理工科,特别是公式比较多的数(tu)学(tou)专业,其重要性自不必多说,不在本文探讨范围之内。而选择一个比较好的编译器是很重要的,至少对笔者而言是如此。笔者前期使用的TeXstudio进行文档的编译的,但是其编译速度比较慢,并且页面不是很美观。最让人头疼的是,当公式比较长的时候,使用的括号就比较多,但 Texstudio 的代码高亮功能实在是....(...

weixin_39966922的博客 5742

DeepSeek与豆包无缝对接:5分钟搞定智能周报自动化(附完整代码)

本文详细介绍了如何利用DeepSeek与豆包API,快速搭建一个智能周报自动化系统。通过整合豆包平台的工作流数据,并调用DeepSeek大模型进行深度分析与内容生成,该系统能在5分钟内自动抓取、分析多源信息,并生成结构清晰、富有洞察力的团队周报,显著提升工作效率。

weixin_29029995的博客 494

workbench谐响应

定义材料 打开Engineering Data定义材料,在分析时不同部分选择不同材料 建模 打开Geometry建模,我举的例子很简单就一根光秃秃的轴 因为要加轴承,在轴上创建imprint face 因为要用point mass代替轴上原来的盘,在轴上盘的位置新建一个Plane,用Slice方法将轴从XYPlane3分成两段 施加边界条件以及谐响应分析 打开Model 1.在两段轴的交界面处,创建Point Mass,输入质量与转动惯量,位置在轴线上 2.mass point promote to.

my blogs include programming, math, physics.回首过去,放眼未来。 leslielee.blog.youkuaiyun.com 5886

5、Latex学习笔记之伪代码、代码块篇

五、伪代码 需要用到的宏包: \usepackage{algorithmic} \usepackage{algorithm} 1、通用模板 对于计算机专业的学生,在论文中插入伪代码描述所用的算法还是比较常见的。下面是伪代码的通用模板,我们先体验一下其效果,然后在后面详细讲解模板中的每个细节。 \begin{algorithm}[!h] \caption{Algorithm of SUM} \label{alg:AOS} \renewcommand{\algorithmi...

qq_43760191的博客 5万+

Eplan P8自动线号生成全攻略:从电位定义点到连接编号的完整流程

本文详细解析了Eplan P8自动线号生成的全流程,从电位定义点的创建配置到连接编号的标准化管理,帮助电气设计人员提升图纸规范性和工作效率。重点介绍了自动编号方案的定义与调整技巧,以及企业级标准化实施建议,是掌握Eplan P8自动线号功能的实用指南。

weixin_29254029的博客 510

Python代码转Latex公式,这个开源库用一行代码帮你搞定

视学算法报道编辑:小舟转载自公众号:机器之心你的代码中有数学公式吗?数学是数据科学和机器学习的重要基础,数学运算的结果对于机器学习项目而言是至关重要的。在编写代码时,我们常常需要定义数学...

zandaoguang的博客 1363

把 ABAP Smart Form 输出变成可直接下载的 PDF 二进制:OTF 到 XSTRING 的一条龙实践

SAP Smart Forms 生成 PDF 的实用方案:通过 OTF 格式转换实现高效输出。Smart Forms 本身不直接生成 PDF,而是输出 OTF 格式数据,需通过 CONVERT_OTF 函数转换。本文提供两种实现路径:传统的 Spool 方式和更优的直接获取 OTF 方式,后者避免了 Spool 的维护负担。核心代码演示了如何通过设置 GETOTF 参数获取 OTF 数据,并转换为 PDF 二进制流,适用于前端下载、接口传输等场景。同时介绍了 SSF_OPEN/SSF_CLOSE 方法用于批

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 676

RK3568平台开发系列讲解(项目篇)手写数字识别

📢 本篇章带大家基于飞桨(PaddlePaddle),完成一个简单的手写数字识别任务。

内核笔记 1183

python识别latex公式_Python代码转Latex公式,这个开源库用一行代码帮你搞定

来源:机器之心数学是数据科学和机器学习的重要基础,数学运算的结果对于机器学习项目而言是至关重要的。在编写代码时,我们常常需要定义数学公式的计算形式。像 S=r^2 这样简单的数学公式,大概不会出现拼写错误。但如果是下面这样的公式呢? 图源:知乎用户 @马啃菠箩还记得数学老师密密麻麻的板书吗?人们习惯于手写公式的运算过程。而如果计算机编程语言能够显示出类似于手写公式的计算过程,检查公式运算是否准确就...

weixin_30666427的博客 863

uniapp - H5网页uni.getLocation报错getLocation:fail Geolocation permission denied.Get ipLocation failed.

uni.getLocation getLocation:fail Geolocation permission denied.Get ipLocation failed.,uni.getLocation定位失败,uni-app getLocation()无法获取定位,一直fail()uniapp移动端h5网页,uniApp微信内置浏览器定位失败,如何解决这个问题,uniapp h5 uni.getLocation获取位置失败怎么办,UNI-APP获取当前位置,uni.getLocation定位失败,unia

🏆 前端领域优质创作者 4244

python调用latex_Python代码转Latex公式,这个开源库用一行代码帮你搞定

机器之心报道编辑:小舟你的代码中有数学公式吗?数学是数据科学和机器学习的重要基础,数学运算的结果对于机器学习项目而言是至关重要的。在编写代码时,我们常常需要定义数学公式的计算形式。像 S=r^2 这样简单的数学公式,大概不会出现拼写错误。但如果是下面这样的公式呢?图源:知乎用户 @马啃菠箩还记得数学老师密密麻麻的板书吗?人们习惯于手写公式的运算过程。而如果计算机编程语言能够显示出类似于手写公式的计...

weixin_39892019的博客 275

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

latex伪代码添加注释_Python代码转Latex公式,这个开源库用一行代码帮你搞定

机器之心报道编辑:小舟你的代码中有数学公式吗?数学是数据科学和机器学习的重要基础,数学运算的结果对于机器学习项目而言是至关重要的。在编写代码时,我们常常需要定义数学公式的计算形式。像 S=r^2 这样简单的数学公式,大概不会出现拼写错误。但如果是下面这样的公式呢?图源:知乎用户 @马啃菠箩还记得数学老师密密麻麻的板书吗?人们习惯于手写公式的运算过程。而如果计算机编程语言能够显示出类似于手写公式的计...

weixin_39788451的博客 570

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

latex 作者名上的邮件符号_Python代码转Latex公式,这个开源库用一行代码帮你搞定...

机器之心报道编辑:小舟你的代码中有数学公式吗?数学是数据科学和机器学习的重要基础,数学运算的结果对于机器学习项目而言是至关重要的。在编写代码时,我们常常需要定义数学公式的计算形式。像 S=r^2 这样简单的数学公式,大概不会出现拼写错误。但如果是下面这样的公式呢?图源:知乎用户 @马啃菠箩还记得数学老师密密麻麻的板书吗?人们习惯于手写公式的运算过程。而如果计算机编程语言能够显示出类似于手写公式的计...

weixin_39615596的博客 166

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

语言编写复化柯特斯公式_Python 代码转 Latex 公式,这个开源库用一行代码帮你搞定...

点击上方“程序员大白”,选择“星标”公众号重磅干货,第一时间送达转自 | 机器之心数学是数据科学和机器学习的重要基础,数学运算的结果对于机器学习项目而言是至关重要的。在编写代码时,我们常常需要定义数学公式的计算形式。像 S=r^2 这样简单的数学公式,大概不会出现拼写错误。但如果是下面这样的公式呢?图源:知乎用户 @马啃菠箩还记得数学老师密密麻麻的板书吗?人们习惯于手写公式的运算过程。而...

weixin_32254411的博客 179

python希腊字母大小写的转换_Python代码转Latex公式,这个开源库用一行代码帮你搞定...

数学是数据科学和机器学习的重要基础,数学运算的结果对于机器学习项目而言是至关重要的。在编写代码时,我们常常需要定义数学公式的计算形式。像 S=r^2 这样简单的数学公式,大概不会出现拼写错误。但如果是下面这样的公式呢?图源:知乎用户 @马啃菠箩还记得数学老师密密麻麻的板书吗?人们习惯于手写公式的运算过程。而如果计算机编程语言能够显示出类似于手写公式的计算过程,检查公式运算是否准确就可以轻松多了吧。...

weixin_39633781的博客 268

python数学表达式与latex表达式转化_Python 代码转 Latex 公式,这个开源库用一行代码帮你搞定...

转自 | 机器之心数学是数据科学和机器学习的重要基础,数学运算的结果对于机器学习项目而言是至关重要的。在编写代码时,我们常常需要定义数学公式的计算形式。像 S=r^2 这样简单的数学公式,大概不会出现拼写错误。但如果是下面这样的公式呢?还记得数学老师密密麻麻的板书吗?人们习惯于手写公式的运算过程。而如果计算机编程语言能够显示出类似于手写公式的计算过程,检查公式运算是否准确就可以轻松多了吧。近日,G...

weixin_32780623的博客 519
上一篇: 如何 Import 自定义的 Python 模块?
下一篇: 损失函数理解汇总,结合 PyTorch1.7 和 TensorFlow2
机器学习算法那些事
博客等级 码龄9年 1633粉丝 62原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值