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)