Todos tienen su caja de herramientas de programas favoritos que instalan en sus máquinas cada vez que obtienen uno nuevo. Al trabajar con Python, he creado mi propio conjunto de herramientas esenciales. Estas son las bibliotecas y programas que busco cada vez que adquiero una máquina nueva.
Jupyter/IPython
Jupyter es una forma de crear cuadernos interactivos que combinan texto, gráficos y código. Esta es una forma única de programación. Ha arrasado en el mundo de la programación científica. Es muy fácil ejecutar y volver a ejecutar fragmentos de código.
Si bien no es una herramienta específica de Python y admite otros lenguajes, Python es uno de los lenguajes de código abierto elegidos para la informática científica, incluidas las estadísticas. Los cuadernos de Jupyter eran originalmente parte de IPython, que mejora el entorno interactivo de Python. Utilizo principalmente IPython para experimentar y cuadernos Jupyter cuando quiero guardar mis resultados.
Tipo de serpiente venenosa
Esta no es una herramienta específica de Python, pero Mamba es útil para configurar mi entorno en una máquina nueva. Si bien Python está incluido en muchos sistemas, en los sistemas Linux se usa principalmente para admitir scripts y otras funciones del sistema operativo en sí, y no está destinado a proyectos de programación. Si quiero instalar paquetes, tendré que usar mi administrador de paquetes o configurar un entorno virtual.
Mamba me permite configurar fácilmente entornos personalizados con los paquetes que quiero y alternar entre ellos. Esto hace que sea mucho menos probable que arruine el entorno Python de mi sistema.
NumPy
NumPy es el caballo de batalla de la computación científica en Python. Su funcionalidad lo hace comparable a Matlab, ya ampliamente utilizado en ciencia e ingeniería. Facilita el trabajo con matrices numéricas. Puedes definir vectores y matrices para resolver sistemas de ecuaciones lineales fácilmente.
El principal atractivo para mí es la disponibilidad de muchos cálculos estadísticos básicos, incluidas la media y la mediana. NumPy también funciona con muchas otras bibliotecas, que mencionaré más adelante.
ciencia ficción
SciPy es un paquete de sorpresas con muchas funciones científicas. Una vez más, su principal atractivo para mí es la informática estadística. Puedo funciones de la computadora que por alguna razón no están en el NumPy estándar. Por ejemplo, puedo calcular la moda estadística o el número que aparece con más frecuencia en un conjunto de datos.
Supongamos que tengo una matriz llamada «a». Si quiero encontrar el modo, simplemente ejecutaría este código:
from scipy import stats
stats.mode(a)
SciPy también tiene muchas distribuciones estadísticas populares, como la normal, la binomial y la t de Student. Ya no tengo que revisar las tablas.
SymPy
Mientras que NumPy y SciPy cubren cálculos numéricos, SymPy ofrece algo completamente diferente. Es una biblioteca que convierte Python en un sistema de álgebra informática. Esto le permite manipular variables simbólicas de la misma manera que una calculadora trabaja con números. Esta es una funcionalidad que se ofrece en paquetes costosos como Wolfram Mathematica.
Esto me permite realizar operaciones algebraicas dentro de Python, como expandir y factorizar polinomios, resolver ecuaciones e incluso cálculo integral y diferencial. Si bien esto representa una minoría de las operaciones diarias, son valiosas para una comprensión más profunda de los conceptos estadísticos. Puedo usarlo para calcular la fórmula de una regresión lineal, mientras que otras bibliotecas se encargarán de los cálculos reales. También lo he estado usando para trabajar con textos que hacen uso de estas operaciones más avanzadas. Lo he encontrado como una herramienta invaluable para mi autoeducación matemática.
pandas
Para los cálculos estadísticos, esto sería un caballo de batalla aún mayor que NumPy por sí solo. pandas facilita la definición de DataFrames de datos rectangulares. Esto se parece a la disposición de los datos que se ve en las hojas de cálculo y en las bases de datos relacionales. También es trivialmente fácil importar datos desde hojas de cálculo Excel y CSV.
No solo puedo mostrar datos, sino que también tiene muchas funciones integradas para ejecutar cálculos, como estadísticas descriptivas. También puedo trazar datos usando métodos pandas.
nacido en el mar
He mencionado a Seaborn anteriormente. Me gusta cómo ofrece una manera fácil de generar gráficos estadísticos comunes. Es efectivamente una interfaz para la popular biblioteca Matplotlib. Si bien esto último es útil, puede resultar complicado configurar la trama que desea. En Seaborn, se trata principalmente de elegir el tipo de gráfico que quiero y establecer un eje x y un eje y.
Por ejemplo, para obtener una regresión con un diagrama de dispersión de la base de datos integrada de propinas de restaurantes de la propina frente a la factura total:
import seaborn as sns
sns.set_theme()
tips = sns.load_dataset('tips')
sns.regplot(x='total_bill',y='tip',data=tips)
pingüino
Pingouin es una biblioteca útil para obtener los resultados de pruebas estadísticas de una forma fácil de usar. Para ver los números reales detrás del gráfico de regresión anterior, puedo usar el método de pingüino. linear_regression método:
import pingouin as pg
pg.linear_regression(tips['total_bill'],tips['tip'])
Existen otras pruebas comunes, como la prueba t de Student y la Chi-cuadrado.
modelos de estadísticas
statsmodels es una biblioteca más antigua que, como su nombre indica, sirve principalmente para pruebas estadísticas. Su principal atractivo es la regresión lineal. Sus resultados también se comparan con otros programas estadísticos como R. Esto lo hace útil si desea asegurarse de que sus resultados sean válidos. Hablando de R, también admite fórmulas similares a R. Demostraré esto con otra versión del análisis de regresión del conjunto de datos de sugerencias:
import statsmodels.formula.api as smf
results = smf.ols('tip ~ total_bill',data=tips).fit()
results.summary()
Estas bibliotecas y herramientas hacen que el análisis de datos sea más fácil e incluso más divertido. Es probable que estos me sigan hasta mi próxima máquina.

