當前位置: 華文世界 > 科技

Handcalcs,讓python科學計算過程更清晰

2024-07-24科技

當你的數據分析過程或演算法程式碼中充斥著數學計算和復雜公式時,是否曾感到頭昏腦脹,難以理清計算過程?難道你不曾夢想過一種方法,能夠讓這些計算過程變得清晰易懂,甚至近乎魔法般簡單?幸運的是,這樣的神奇工具已經出現了——它就是Handcalcs。Handcalcs是一個令人驚嘆的Python庫,它不僅能夠讓數值計算過程變得清晰可視,而且還能讓你輕松理解和解釋這些復雜的計算。讓我們一起揭開Handcalcs的神秘面紗,探索如何用它讓Python計算過程變得更加清晰。

Handcalcs 是什麽

Handcalcs 是一個非常實用的 Python 庫,它能夠讓數值計算過程更加清晰易懂。該庫適用於科學/工程計算、教育/教學以及數據分析等多個領域,有助於開發者更好地理解和解釋計算過程。

我們看一下簡單的範例:

import handcalcs.renderfrom math import sqrt, pi

%%rendera=3b=-10c=2x = -b + sqrt(b**2 - 4*a*c)/(2*a)

安裝handcalcs

pip install handcalcs

基本用法1:魔法指令渲染和轉化LaTex(%%render、%%tex)

handcalcs 可以作為 Jupyter Notebook 或 Jupyter Lab 或SmartNotebook中的單元格魔法指令使用。 %%render 魔法指令渲染成公式展示輸出;而%%tex 魔法指令將運算式轉換LaTex 公式表達。

首先,匯入該模組並執行單元格:

import handcalcs.renderfrom math import sqrt, pi

使用 %%reader 的範例:

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

使用 %%tex 的範例:

%%texa = 2 / 3 * sqrt(pi)

基本用法2:裝飾器的方式使用,@handcalc()

匯入 @handcalc() 裝飾器:

from handcalcs.decorator import handcalc

具體的裝飾器參照上圖的說明。下面一個範例:

@handcalc(jupyter_display=True)def my_calc(x :float,y:float,z:float): a=2*x b=3*a/z+sqrt(a+y/2) c=a+b return cresult=my_calc(2.3,3.2,1.2)print(result)

符號數學計算sympy的支持

Sympy允許對代數運算式進行符號操作、求解和積分。如果您需要處理Sympy運算式或方程式以進行計算,請使用handcalcs來處理您的結果運算式替換和計算。

import sympy as spimport handcalcs.rendera,b,c=sp.symbols("a b c")d= a**2 +b*af= sp.integrate(d,a)f

%%render sympya=5b=10x=f

下標(Subscripts)支持

當在變量名中使用底線(_)時,變量名中的下標會自動生成。對於每個在系列中使用的單獨底線,都會巢狀生成子下標。

%%rendera_1=10x_i=200

更為詳細的幫助參考官方文件:https://github.com/connorferster/handcalcs

Handcalcs 的特征和套用場景:

主要特征如下

  • 手寫風格:Handcalcs 將計算過程轉換為類似手寫計算的格式,包括數學符號、單位、註釋等,使其更易於閱讀和理解。
  • Notebook 整合:Handcalcs 可以將計算過程直接嵌入到 Jupyter Notebook 中,方便互動式計算和結果展示。
  • LaTeX 支持:Handcalcs 支持 LaTeX 語法,可以生成高品質的數學公式。
  • 自訂格式:Handcalcs 支持自訂輸出格式,例如字型、顏色、間距等。
  • 套用場景如下:

  • 數據分析:Handcalcs 可以將數據分析過程中的計算步驟視覺化,方便解釋和交流。
  • 科學/工程計算:Handcalcs 可以使科學。工程計算過程更加清晰,方便偵錯和理解。
  • 教育和教學:Handcalcs 可以幫助學生更好地理解數學和科學計算過程。


  • Handcalcs 是一款非常實用的 Python 庫,能夠讓數值計算過程更加清晰易懂。該庫適用於科學和工程計算、教育和教學、以及數據分析等多個領域,有助於開發者更好地理解和解釋計算過程。