SymPy - Fonction Lambdify ()
La fonction lambdify traduit les expressions SymPy en fonctions Python. Si une expression doit être évaluée sur une large plage de valeurs, la fonction evalf () n'est pas efficace. lambdify agit comme une fonction lambda, sauf qu'il convertit les noms SymPy en noms de la bibliothèque numérique donnée, généralement NumPy. Par défaut, lambdify sur les implémentations dans la bibliothèque standard math.
>>> expr=1/sin(x)
>>> f=lambdify(x, expr)
>>> f(3.14)
L'extrait de code ci-dessus donne la sortie suivante -
627.8831939138764
L'expression peut avoir plusieurs variables. Dans ce cas, le premier argument de la fonction lambdify () est une liste de variables, suivie de l'expression à évaluer.
>>> expr=a**2+b**2
>>> f=lambdify([a,b],expr)
>>> f(2,3)
L'extrait de code ci-dessus donne la sortie suivante -
13
Cependant, pour tirer parti de la bibliothèque numpy en tant que backend numérique, nous devons définir la même chose comme argument de la fonction lambdify ().
>>> f=lambdify([a,b],expr, "numpy")
Nous utilisons deux tableaux numpy pour deux arguments a et b dans la fonction ci-dessus. Le temps d'exécution est considérablement rapide dans le cas de tableaux numpy.
>>> import numpy
>>> l1=numpy.arange(1,6)
>>> l2=numpy.arange(6,11)
>>> f(l1,l2)
L'extrait de code ci-dessus donne la sortie suivante -
array([ 37, 53, 73, 97, 125], dtype=int32)