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)