【问题标题】:Decorate all SymPy outputs to Jupyter notebook将所有 SymPy 输出装饰到 Jupyter 笔记本
【发布时间】:2016-03-31 00:22:54
【问题描述】:

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

我编写了一个自定义函数to_engg(),它接受一个数字并返回一个字符串,该字符串包含一个任意精度的数字,最后加上工程前缀。

如何截取 SymPy 输出并首先通过我的 to_engg() 函数对其进行处理?

SymPy:好的,现在我要吐出这个丑陋的浮标65722045.8015267
我:不要那么快。首先通过 to_engg()。
SymPy: ptui!
这里发生了一些奇迹
Jupyter:在这里去。 65.7 M

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

【问题讨论】:

    标签: python sympy jupyter python-decorators


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2020-12-23
      • 1970-01-01
      • 1970-01-01
      • 2019-11-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-29
      相关资源
      最近更新 更多