SymPy - Lambdify () işlevi

Lambdify işlevi SymPy ifadelerini Python işlevlerine çevirir. Bir ifade geniş bir değer aralığında değerlendirilecekse, evalf () işlevi verimli değildir. lambdify, bir lambda işlevi gibi davranır, ancak SymPy adlarını verilen sayısal kitaplığın, genellikle NumPy adlarına dönüştürür. Varsayılan olarak, matematik standart kitaplığındaki uygulamalarda lambdify.

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

Yukarıdaki kod parçacığı aşağıdaki çıktıyı verir -

627.8831939138764

İfadenin birden fazla değişkeni olabilir. Bu durumda, lambdify () işlevinin ilk bağımsız değişkeni, değişkenlerin bir listesidir ve ardından değerlendirilecek ifade gelir.

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

Yukarıdaki kod parçacığı aşağıdaki çıktıyı verir -

13

Bununla birlikte, numpy kitaplığını sayısal arka uç olarak kullanmak için, aynısını lambdify () işlevi için bir bağımsız değişken olarak tanımlamamız gerekir.

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

Yukarıdaki işlevde iki argüman a ve b için iki numpy dizisi kullanıyoruz. Uyuşmuş dizilerde yürütme süresi oldukça hızlıdır.

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

Yukarıdaki kod parçacığı aşağıdaki çıktıyı verir -

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