SymPy es una biblioteca de Python dedicada a la matemática simbólica. ¡Descubre todo lo que necesitas saber sobre esta herramienta tan útil en Data Science!
Las matemáticas son esenciales en el campo de la Data Science. Afortunadamente, existen muchas bibliotecas Python dedicadas a esta disciplina como NumPy, SciPy, Scikit-Learn y TensorFlow.
En lo que respecta a los símbolos matemáticos, la biblioteca de Python más popular es SymPy. Su nombre es la abreviación de «Symbolic Mathematics in Python«, y forma parte del ecosistema SciPy junto con NumPy, Pandas y Matplotlib.
¿Qué es SymPy?
La biblioteca SymPy para Python se presenta como un sistema de álgebra computacional (CAS) completo, a la vez que mantiene un código sencillo para permitir su comprensión y su ampliación.
Escrita completamente en Python, es fácil de usar, ya que se basa únicamente en mpmath: una biblioteca pura de Python para aritmética de punto flotante.
Centrada en la simplicidad y la extensibilidad, no pretende ampliar el lenguaje Python. Su objetivo es permitir a los usuarios utilizarla junto con otras bibliotecas en un entorno interactivo o como parte de un sistema más amplio.
Puede incorporarse a otros programas y modificarse con funciones personalizadas. La biblioteca se ofrece gratuitamente bajo la licencia BSD.
¿Para qué se utiliza SymPy?
SymPy se utiliza para manipular expresiones matemáticas, o para resolver problemas matemáticos de nivel universitario.
Permite construir una calculadora, y se puede utilizar como un Sistema de Álgebra Computacional (CAS). Sin embargo, es necesario declarar manualmente las variables simbólicas con la función Symbol().
Un sistema como este permite hacer simbólicamente todo tipo de cálculos. Es posible simplificar declaraciones, calcular derivadas, resolver ecuaciones, interactuar con matrices y mucho más.
¿Cómo utilizar SymPy?
SymPy se instala fácilmente utilizando el comando «pip install sympy». El objeto fundamental de esta biblioteca es el símbolo.
Tras importar el paquete sympy como «sp», la creación de un símbolo «x» que represente un valor desconocido se efectúa con el comando «x = sp.symbol(«x»)». Es posible crear varios símbolos, como «x» e «y», en función del número de incógnitas. Estos símbolos se pueden sumar, restar, multiplicar y dividir a voluntad.
Existen muchas funciones SymPy. Por ejemplo, sympify() convierte una expresión arbitraria en una expresión SymPy y convierte objetos Python estándar.
Por su parte, la función evalf() evalúa una expresión numérica concreta con una precisión máxima de 100 decimales. Puede aceptar un objeto de diccionario con valores numéricos como subargumento.
La función Lambdify() permite convertir sus expresiones en funciones de Python. Esto se debe a que el método evalf() no es eficaz a la hora de evaluar una expresión en un rango amplio de valores.
Lambdify funciona de manera similar a una función lambda, pero traduce los nombres SymPy en nombres de la biblioteca numérica especificada. Esta suele ser NumPy.
Las funciones se pueden escribir en el texto del script, en el terminal o en un notebook Jupyter. Esto proporciona una representación gráfica de los cálculos.
Alternativas a SymPy
De las herramientas del sistema de álgebra computacional (CAS) que pueden actuar como alternativas a SymPy, muchas son de código cerrado. Esto puede resultar problemático a la hora de comprender cómo se obtiene un resultado, y este tipo de software suele ser caro.
Uno de los ejemplos más conocidos en este campo es Wolfram Mathematica. También existen herramientas gratuitas, como la calculadora gratuita Desmos.
Las herramientas más conocidas de Python para las matemáticas son NumPy y Pandas. Sin embargo, aunque NumPy y SymPy son bibliotecas diseñadas para las matemáticas, son muy diferentes. NumPy opera numéricamente, mientras que SymPy trabaja con expresiones simbólicas. Sin embargo, es posible exportar una expresión SymPy a una matriz NumPy con la función lambdify.
Por su parte, SciPy ofrece varias funciones similares a SymPy, como la resolución de ecuaciones, la integración y la diferenciación. También propone funciones de álgebra lineal similares a NumPy. A diferencia de SymPy, SciPy no está escrito completamente en Python. Otra diferencia notable es que las funciones matemáticas están escritas como simples funciones de Python que devuelven un resultado y no como expresiones matemáticas.
Por lo general, SciPy es ideal para integrar algoritmos matemáticos de alta velocidad en Python. SymPy, por su parte, es más apropiado para las necesidades de un alumno de matemáticas, un investigador o un Data Scientist.
Otro sistema de álgebra computacional que utiliza Python como lenguaje de programación es SageMath. Sin embargo, se trata de un programa mucho más pesado que SymPy, que requiere una descarga de más de un gigabyte.
Además de ser compacto, SymPy solo depende de Python. Por tanto, puede utilizarse en cualquier entorno.
En cuanto a Sage, se presenta como un sistema matemático completo al combinar los principales sistemas de código abierto en una única solución. El uso de una función activa los paquetes de código abierto correspondientes.
Este CAS se basa en un lenguaje específico construido sobre Python y un conjunto de bibliotecas de código abierto escritas en C, Fortran o incluso LISP.
Sin embargo, ese no es el caso de SymPy, que es un sistema autónomo que integra toda su funcionalidad. Su naturaleza como biblioteca de Python es lo que la hace tan especial.
Debido a su abstracción de Python, SageMath puede actuar como un CAS general. Por otro lado, SymPy es más adecuado para la integración en una aplicación Python.
Muchos CAS diseñados para su uso en un entorno interactivo son difíciles de automatizar y ampliar. Ese no es el caso de SymPy, que puede utilizarse de manera interactiva en Python o importarse a un programa propio. Sus API también facilitan su ampliación.
Conclusión
SymPy es una potente biblioteca dedicada a las matemáticas simbólicas. Permite crear variables y funciones, pero también ampliar y simplificar enunciados matemáticos simbólicamente o resolver ecuaciones.
Para aprender a utilizar Python y las distintas bibliotecas dedicadas a las matemáticas, puedes optar por las formaciones de DataScientest. Nuestros distintos cursos incluyen un módulo dedicado a este lenguaje de programación.
Siguiendo nuestros cursos a distancia, podrás lograr todas las competencias necesarias para trabajar como Data Analyst, Data Engineer o Data Scientist.
Nuestros cursos pueden realizarse en BootCamp o en formación continua, y nuestros cursos son bonificables con FUNDAE. ¡Descubre DataScientest!