- SymPy 教程
- SymPy - 主頁
- SymPy - 簡介
- SymPy - 安裝
- SymPy - 符號計算
- SymPy - 數字
- SymPy - 符號
- SymPy - 替換
- SymPy - sympify() 函式
- SymPy - evalf() 函式
- SymPy - Lambdify() 函式
- SymPy - 邏輯表示式
- SymPy - 查詢
- SymPy - 簡化
- SymPy - 導數
- SymPy - 積分
- SymPy - 矩陣
- SymPy - 函式類
- SymPy - 四元數
- SymPy - 求解器
- SymPy - 繪圖
- SymPy - 實體
- SymPy - 集合
- SymPy - 列印
- SymPy 實用資源
- SymPy - 快速指南
- SymPy - 實用資源
- SymPy - 討論
SymPy - Lambdify() 函式
lambdify 函式將 SymPy 表示式轉換為 Python 函式。如果要在多個值範圍內計算某個表示式的值,evalf() 函式的效率不高。lambdify 充當 lambda 函式,但會將 SymPy 名稱轉換為給定數字庫(通常為 NumPy)的名稱。預設情況下,lambdify 執行數學標準庫中的操作。
>>> expr=1/sin(x) >>> f=lambdify(x, expr) >>> f(3.14)
上述程式碼片段輸出以下內容 −
627.8831939138764
該表示式的變數可能超過一個。在這種情況下,lambdify() 函式的第一個引數是變數列表,後面是待計算的表示式。
>>> expr=a**2+b**2 >>> f=lambdify([a,b],expr) >>> f(2,3)
上述程式碼片段輸出以下內容 −
13
但是,要將 numpy 庫用作數字後端,我們必須將其定義為 lambdify() 函式的引數。
>>> f=lambdify([a,b],expr, "numpy")
我們在上述函式中使用了兩個 numpy 陣列作為兩個引數 a 和 b。對於 numpy 陣列,執行時間相當快。
>>> import numpy >>> l1=numpy.arange(1,6) >>> l2=numpy.arange(6,11) >>> f(l1,l2)
上述程式碼片段輸出以下內容 −
array([ 37, 53, 73, 97, 125], dtype=int32)
廣告