SymPy - Funzione Lambdify ()

La funzione lambdify traduce le espressioni SymPy in funzioni Python. Se un'espressione deve essere valutata su un ampio intervallo di valori, la funzione evalf () non è efficiente. lambdify si comporta come una funzione lambda, tranne per il fatto che converte i nomi SymPy nei nomi della libreria numerica data, solitamente NumPy. Per impostazione predefinita, lambdify sulle implementazioni nella libreria standard di matematica.

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

Lo snippet di codice sopra fornisce il seguente output:

627.8831939138764

L'espressione potrebbe avere più di una variabile. In tal caso, il primo argomento della funzione lambdify () è un elenco di variabili, seguito dall'espressione da valutare.

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

Lo snippet di codice sopra fornisce il seguente output:

13

Tuttavia, per sfruttare la libreria numpy come backend numerico, dobbiamo definire lo stesso come argomento per la funzione lambdify ().

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

Usiamo due array numpy per due argomenti aeb nella funzione sopra. Il tempo di esecuzione è notevolmente veloce in caso di array numpy.

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

Lo snippet di codice sopra fornisce il seguente output:

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