Los sospechosos habituales y Python

Llamo sospechosos habituales a esos programas y lenguajes para el análisis de datos distintos de R cuya decreciente popularidad nos parece tan natural a los partidarios de este último. Abundan los análisis de cuotas de mercado tales como What Analytic Software are People Discussing?

¿Cuáles son estos sospechosos habituales? Pues SAS, SPSS y algún otro: Stata, Statistica, Minitab,…

Sin embargo, R tiene competidores más serios a medio plazo. Uno de ellos, el más importante, es Python. Lo veo a mi alrededor: son muchos los físicos, los ingenieros, los informáticos que tienen experiencia en ese lenguaje y, sintiéndose cómodos en él —y les alabo el gusto— quieren utilizarlo para analizar datos cuando les toca.

Y para que mis lectores puedan hacerse una idea de cuáles son las herramientas disponibles para el análisis de datos con Python y cuál es el estado del arte, traigo a esta entrada una serie de enlaces comentados.

El primero habla sobre pandas, una extensión de Python que implementa estructuras de datos similares a los data.frames de R. Es precisamente la falta de una estructura de datos tabular la que ha dificultado el análisis de datos en otros lenguajes. Pandas suple esa carencia.

Un segundo aspecto que diferencia a R de muchos de sus competidores es la capacidad para generar gráficos. En Python se han podido hacer cosas normalitas (como esta), pero algunos proyectos más avanzados tienen buena pinta: seaborn quiere convertirse en ggplot2, matplotlib es un proyecto maduro y Bokeh podría dar que hablar en el futuro.

En cuanto a la parte dura, la estadística en sí misma, la comunidad de usuarios de Python ha trascendido nuestros viejos conocidos numpy y scipy y están apareciendo librerías de machine learning promisorias tales como scikit-learn o mlpy. Tengo la sensación, sin embargo, que están más orientadas a la minería de datos que al análisis estadístico y no estoy seguro de si admiten esas sutilezas a las que acostumbran los estadísticos: interacciones entre variables, factores, etc. Me da la impresión de que en ese sentido todavía están verdes.

Y por supuesto, tienen poco que ofrecer a quienes trabajan en áreas concretas y específicas de la estadística, p.e., encuestas complejas, que tienen mucho menos solapamiento con la minería de datos.

En otro orden de cosas, IPython permite crear cuadernos, documentos parecidos a los que se pueden crear en R con knitr o Sweave integrando código, gráficos y texto.

Y termino con dos artículos que contienen enlaces a todavía más herramientas de Python para el análisis de datos: este y este.