gpt4 book ai didi

python - 将所有 SymPy 输出装饰到 Jupyter notebook

转载 作者:太空宇宙 更新时间:2023-11-03 11:47:14 25 4
gpt4 key购买 nike

每当 SymPy 将 float 输出回​​ Jupyter notebook 时,它都会以它可以收集到的最佳精度显示整数。作为一名习惯于读取 10 的 3 次方(纳、微、毫、千、兆、千兆等)数字的工程师,我发现这很难与之合作

我编写了一个自定义函数 to_engg(),它接受一个数字并返回一个字符串,其中包含一个任意精度的数字,并在末尾添加工程前缀。

如何拦截 SymPy 输出并首先通过我的 to_engg() 函数处理它?<​​/p>

SymPy: Okay, now I'm going to spit out this ugly float 65722045.8015267
Me: Not so fast. Go through to_engg() first.
SymPy: ptui!
Some magic happens here
Jupyter: Here you go. 65.7 M

我能想到的最通用的方法是通过装饰器,这样我就可以使用除 to_engg() 之外的任何其他函数。

最佳答案

SymPy 支持任意精度级别,因此您可以从您想要的精度的数字开始,例如 Float('10.3', 3)

否则,您需要创建一个自定义打印机,将 sympy.printing.latex.LatexPrinter 子类化并覆盖 _print_Float 以使用您想要的精度(请参阅 default implementation ), 并使用 init_printing(latex_printer=YourSubclass().doprint)

关于python - 将所有 SymPy 输出装饰到 Jupyter notebook,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36322099/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com