SymPy : tout savoir sur la bibliothèque Python de calcul symbolique

-
4
 m de lecture
-

SymPy est une bibliothèque Python dédiée aux mathématiques symboliques. Découvrez tout ce que vous devez savoir sur cet outil très utile en Data Science !

Les mathématiques sont essentielles dans le domaine de la Data Science. Heureusement, il existe de nombreuses bibliothèques Python dédiées à cette discipline comme NumPy, SciPy, Scikit-Learn et TensorFlow.

En ce qui concerne les symboles mathématiques, la bibliothèque Python la plus populaire est SymPy. Son nom est l’abréviation de « Symbolic Mathematics in Python », et elle fait partie de l’écosystème SciPy aux côtés de NumPy, Pandas et Matplotlib.

Qu'est-ce que SymPy ?

La bibliothèque SymPy pour Python se présente comme un système d’algèbre informatique (CAS) complet, tout en préservant la simplicité du code pour permettre sa compréhension et son expansion.

Entièrement écrite en Python, elle est simple d’utilisation puisqu’elle repose uniquement sur mpmath : une bibliothèque Python pure pour l’arithmétique flottante.

Focalisée sur la simplicité et l’extensibilité, elle ne cherche pas à étendre le langage Python. Son objectif est de permettre aux utilisateurs de l’utiliser aux côtés d’autres bibliothèques au sein d’un environnement interactif ou comme composant d’un système plus large.

Il est en effet possible de l’incorporer à d’autres programmes, et de la modifier avec des fonctions personnalisées. Cette bibliothèque est proposée gratuitement sous la licence BSD.

À quoi sert SymPy ?

On utilise notamment SymPy pour manipuler des expressions mathématiques, ou pour résoudre des problèmes mathématiques de niveau universitaire.

Elle permet de construire un calculateur, et peut être utilisée en tant que système d’algèbre informatique (Computer Algebra Systems ou CAS). Il est toutefois nécessaire de déclarer manuellement les variables symboliques avec la fonction Symbol().

Un tel système permet d’effectuer toutes sortes de calculs symboliquement. Il est possible de simplifier les déclarations, de calculer les dérivées, de résoudre des équations, d’interagir avec des matrices et bien plus encore.

Comment utiliser SymPy ?

L’installation de SymPy s’effectue très facilement à l’aide de la commande « pip install sympy ». L’objet fondamental de cette bibliothèque est le symbole.

Après avoir importé le package sympy en tant que « sp », la création d’un symbole « x » représentant une valeur inconnue s’effectue avec la commande « x = sp.symbole(« x ») »Il est possible de créer plusieurs symboles, comme « x » et « y » en fonction du nombre d’inconnues. Ces symboles peuvent être additionnés, soustraits, multipliés et divisés à volonté.

Il existe de nombreuses fonctions SymPy. Par exemple, sympify() transforme une expression arbitraire en expression SymPy et convertit les objets Python standard.

De son côté, la fonction evalf() évalue une expression numérique spécifique avec une précision maximale de 100 chiffres après la virgule. Elle peut accepter un objet de dictionnaire avec des valeurs numériques en tant que sous-argument.

La fonction Lambdify() permet quant à elle de convertir ses expressions en fonctions Python. En effet, la méthode evalf() est inefficace pour évaluer une expression sur une large gamme de valeurs.

Le fonctionnement de Lambdify est similaire à une fonction lambda, mais traduit les noms SymPy vers les noms de la bibliothèque numérique spécifiée. Il s’agit généralement de NumPy.

Il est possible d’écrire les fonctions dans le texte de script, dans le terminal ou sur un notebook Jupyter. Ceci délivre une représentation graphique des calculs.

Les alternatives à SymPy

Parmi les outils de système d’algèbre informatique (CAS) pouvant faire office d’alternative à SymPy, beaucoup sont à source fermée. Ceci peut poser problème pour comprendre comment un résultat est obtenu, et ces logiciels sont généralement onéreux.

L’un des exemples les plus connus dans ce domaine est Wolfram Mathematica. Il existe aussi des outils gratuits, comme le calculateur gratuit Desmos.

Les outils Python dédiés aux mathématiques les plus connus sont NumPy et Pandas. Toutefois, si NumPy et SymPy sont deux bibliothèques conçues pour les maths, elles sont très différentes. NumPy opère numériquement, tandis que SymPy travaille avec les expressions symboliques. Il est toutefois possible d’exporter une expression SymPy vers un tableau NumPy avec la fonction lambdify.

De même, SciPy propose plusieurs fonctionnalités similaires à SymPy comme la résolution d’équations, l’intégration et la différentiation. Il propose également des fonctions d’algèbre linéaire semblables à NumPyContrairement à SymPy, SciPy n’est pas écrit entièrement en Python. Une autre différence notable est que les fonctions mathématiques s’écrient comme de simples fonctions Python retournant un résultat et non comme des expressions mathématiques.

En général, SciPy est idéal pour l’intégration d’algorithmes mathématiques à haute vitesse en Python. De son côté, SymPy est plus appropriée pour les besoins d’un étudiant en mathématiques, d’un chercheur ou d’un Data Scientist.

Un autre système d’algèbre informatique utilisant Python comme langage de programmation est SageMath. Il s’agit toutefois d’un programme beaucoup plus lourd que SymPy, nécessitant un téléchargement de plus d’un gigaoctet.

En plus d’être compact, SymPy n’a aucune autre dépendance que Python. Il peut donc être utilisé dans n’importe quel environnement.

De son côté, Sage se présente comme un système mathématique complet en combinant tous les principaux systèmes open-source en une solution unique. L’utilisation d’une fonction invoque les packages open-source correspondants.

Ce CAS repose sur un langage dédié bâti par-dessus Python et un ensemble de bibliothèques open-source écrites en C, Fortran ou même LISP.

Ce n’est pas le cas de SymPy qui est un système indépendant, embarquant toutes ses fonctionnalités. Sa nature de bibliothèque Python est ce qui fait toute sa particularité.

De par son abstraction de Python, SageMath peut faire office de CAS généraliste. En revanche, SymPy est plus adéquat pour l’intégration à une application en Python.

De nombreux CAS conçus pour un usage en environnement interactif sont difficiles à automatiser et étendre. Ce n’est pas le cas de SymPy, pouvant être utilisé de façon interactive sur Python ou importé dans votre propre programme. Ses APIs simplifient aussi son extension.

Conclusion

SymPy est une puissante bibliothèque dédiée aux mathématiques symboliques. Elle permet de créer des variables et des fonctions, mais aussi d’étendre et de simplifier des déclarations mathématiques symboliquement ou de résoudre des équations.

Pour apprendre à manier Python et les diverses bibliothèques dédiées aux mathématiques, vous pouvez choisir les formations DataScientest. Nos différents cursus comportent un module dédié à ce langage de programmation.

En suivant nos formations à distance, vous pourrez acquérir toutes les compétences requises pour exercer les métiers de Data Analyst, Data Engineer, Data Scientist, Machine Learning Engineer ou Data Product Manager.

Nos parcours se complètent en BootCamp ou en formation continue, et notre organisme reconnu par l’État est éligible au Compte Personnel de Formation pour le financement. Découvrez DataScientest !

Vous savez tout sur SymPy. Pour plus d’informations sur le même sujet, découvrez notre dossier complet sur Python et notre guide sur la bibliothèque NumPy !

Facebook
Twitter
LinkedIn

DataScientest News

Inscrivez-vous à notre Newsletter pour recevoir nos guides, tutoriels, et les dernières actualités data directement dans votre boîte mail.

Vous souhaitez être alerté des nouveaux contenus en data science et intelligence artificielle ?

Laissez-nous votre e-mail, pour que nous puissions vous envoyer vos nouveaux articles au moment de leur publication !

Newsletter icone
icon newsletter

DataNews

Vous souhaitez recevoir notre
newsletter Data hebdomadaire ?