SymPy - funkcja Lambdify ()

Funkcja lambdify tłumaczy wyrażenia SymPy na funkcje Pythona. Jeśli wyrażenie ma być oceniane w szerokim zakresie wartości, funkcja evalf () nie jest wydajna. lambdify działa jak funkcja lambda, z tą różnicą, że konwertuje nazwy SymPy na nazwy podanej biblioteki numerycznej, zwykle NumPy. Domyślnie lambdify na implementacjach w standardowej bibliotece matematycznej.

>>> expr=1/sin(x) 
>>> f=lambdify(x, expr) 
>>> f(3.14)

Powyższy fragment kodu daje następujące dane wyjściowe -

627.8831939138764

Wyrażenie może mieć więcej niż jedną zmienną. W takim przypadku pierwszym argumentem funkcji lambdify () jest lista zmiennych, po której następuje wyrażenie, które ma zostać ocenione.

>>> expr=a**2+b**2 
>>> f=lambdify([a,b],expr) 
>>> f(2,3)

Powyższy fragment kodu daje następujące dane wyjściowe -

13

Jednak aby wykorzystać bibliotekę numpy jako zaplecze numeryczne, musimy zdefiniować to samo jako argument funkcji lambdify ().

>>> f=lambdify([a,b],expr, "numpy")

Używamy dwóch tablic numpy dla dwóch argumentów a i b w powyższej funkcji. Czas wykonania jest znacznie szybki w przypadku tablic numpy.

>>> import numpy 
>>> l1=numpy.arange(1,6) 
>>> l2=numpy.arange(6,11) 
>>> f(l1,l2)

Powyższy fragment kodu daje następujące dane wyjściowe -

array([ 37, 53, 73, 97, 125], dtype=int32)