Un 2012 de Python científico

Por Kiko Correoso

Primero de todo, lo más importante, ¡¡¡ha nacido Pybonacci!!!! Un blog dedicado a hablar del uso de Python en el ámbito científico y en español. Si no lo conocéis aún, podéis visitarlo en https://pybonacci.org 🙂

  • Blog (+Twitter, +Fb, +G+) nacido en marzo de 2012
  • Más de 60 artículos publicados
  • Más de 30.000 visitas recibidas
  • Tres autores (esperamos que aumenten en el 2013)
  • Más de 2000 tuits

Venga, hablando en serio, os resumo lo que ha sido este año. Primero veamos las novedades de la base de lo que es Python en el entorno científico, la trinidad: NumPy, matplotlib y SciPy:

NUMPY

MATPLOTLIB

SCIPY

  • Ha salido la versión 0.11 que también es compatible con Python 3.2. Se ha incluido un submódulo dentro de scipy.sparse, se han introducido mejoras en scipy.optimize, scipy.linalg, scipy.interpolate, ...

Los tres proyectos se han movido a GitHub, junto con otros, y el desarrollo ha crecido exponencialmente. ¡¡Esto son buenas noticias!!

El creador de numpy, Travis Oliphant, ha creado Continuum que están dando un gran espaldarazo a la comunidad científica creando una serie de herramientas que son más que interesantes y que durante el 2013 darán mucho que hablar. Blaze, por ejemplo, acaba de recibir una inversión de $3.000.000 por parte de la DARPA. numba parece algo excitante para gente que necesita acelerar sus cálculos, y de hecho en Pybonacci puedes leer nuestro artículo sobre numba.

Siguiendo con otras herramientas:

IPYTHON

Sin duda, este ha sido un año muy importante para IPython:

  • Ha salido la versión 0.13 siendo totalmente funcional con Python 3.

  • Acaban de recibir una donación de 1.15 millones de dólares de la Sloan Foundation.

  • Software Carpentry ha adoptado el IPython notebook para todos sus cursos.

  • Su notebook está revolucionando el modo de crear ciencia (entre otras cosas) y se esperan muchísimas novedades para el 2013 como introducir gráficos interactivos con flot o D3 ¿por qué solo existe JS para el navegador? No quiero aprender JS para hacer esas cosas tan chulas que se hacen con JS en el navegador.

¿Que aun no has probado IPython? Lo puedes probar online desde PythonAnywhere. Puedes leer nuestra introducción a IPython o nuestro artículo sobre el notebook de IPython.

PANDAS

Pandas se está mostrando muy capaz para añadir cosas que existen en R y que Python no tenía como el DataFrame.

  • Esta semana ha salido la versión 0.10, también compatible con Python 3 (por lo menos hasta 3.2, 3.3 no estoy muy seguro).
  • Se ha publicado un libro en O'Reilly donde se da buena cuenta de la librería además de mostrar el uso de Python como herramienta de análisis de datos.

SYMPY

La biblioteca para cálculo simbólico también pasa por un buen momento. Para mí ha sido un descubrimiento de este año, después de no tocar cosas de estas desde mis estudios usando, en aquellos momentos, los inefables maple o mathematica.

¿Has leído ya nuestra introducción a SymPy o nuestro tutorial sobre cómo calcular límites, derivadas, series e integrales con SymPy?

CONFERENCIAS

Ha habido muchas este año y parece que va en aumento el interés por hacer más:

  • La presencia de la rama científica de Python en la PyCon US de este año ha sido muy notable.
  • Este año se ha alcanzado la 11ª SciPy en los EEUU, la 5ª EuroScipy y la 3ª Scipy.in.
  • Se han organizado dos talleres sobre Python en el ámbito del «big data» (nueva «buzzword»), uno hospedado por Google en su sede de Mountain View y otro en NY que, por lo visto, ha sido un tremendo éxito.
  • Existen conferencias más focalizadas que ya empiezan a ser «veteranas» como la que organiza la American Meteorological Society, o la pyHPC, ...
  • Habrá una PyData dentro de la PyCon US del 2013.

En Pybonacci hemos hecho resúmenes o listados de vídeos de muchas de estas conferencias: puedes leer por ejemplo nuestro repaso a la EuroSciPy 2012 o la recopilación de vídeos del PyData NYC, entre otros 🙂

Libros

Este ha sido un año de gran proliferación de libros hablando sobre bibliotecas del ecosistema científico pythonico:

Otras historias

  • Se ha creado la fundación NumFocus con el propósito de promocionar el uso de cálculos accesibles y reproducibles en entornos científicos y tecnológicos.
  • Salen cosas nuevas interesantes como Julia, de las que se pueden aprender cosas nuevas.
  • La velocidad del lenguaje resulta crítica en ciertos momentos y, por suerte, tenemos herramientas que permiten seguir disfrutando de la simplicidad de la sintaxis de Python con velocidades cercanas a Fortran y/o C como cython, theano, numpypy, numexpr, el ya citado numba, mypy (algunas muy experimentales y que ya veremos en qué acaban).
  • Este año ha habido una explosión de cursos online de todo tipo (Coursera, Khan Academy, Udacity, edX, ...) y en muchos de ellos se ha elegido Python para dar las lecciones.
  • También, páginas más dedicadas a programación como Codeacademy han empezado a incluir Python entre sus cursos.
  • Herramientas como SAGE, Python(x,y), WinPython, Spyder, ETS, ... están ahí para ayudar a que cualquiera se pueda iniciar en el cálculo científico con Python y siguen evolucionando formidablemente.
  • Python es el lenguaje más ampliamente usado en el mundo GIS pudiendo hacer cualquier cosa dentro o fuera de paquetes como arcGIS o Qgis.

2013

Parece que el 2013 será un buen año para Python. Aparte de los grandes paquetes, hay tantas cosas que conocer, revisar, de las que hablar, picar código, ... AYUDADNOS:

Hay muchos scikits pululando, incluyendo scikit-aero, milk, algorithms, pyMVPA, PyParticles, Fiona, AstroML, PyCogentPyMC, friture, PySpread, Kartograph,   Chaco, PETSc, SunPy, python-graph, pysph, databrewery, networkX, patsy, PyTables, Mayavi, Assimulo, Basemap, Biopython, Blender-mathutils, Blist, Bottleneck, Carray, CellCognition, CellProfiler, CGAL-Python, CVXOPT, Delny, Dipy, Ffnet, FiPy, GDAL, H5py, LibLAS, LIBLINEAR, libSBML, LIBSVM, Libtfr, Lmfit, MDP, MeshPy, mmLib, MMTK, Natgrid, NetCDF4, NIPY, NLopt, NLTK, nMOLDYN, ODE, OpenCV, Orange, Polygon, PsychoPy, PyAMG, PyBox2D, PyEphem, PyFFTW, PyFITS, pyFLTK, PyHDF, PyMix, PyMOL, Pymutt, PyMVPA, Pyproj, PySparse, Pyspharm, PyTST, PyWavelets, PyWCS, QuantLib, Rtree, SfePy, Shapely, Veusz, VIGRA, VisionEgg, Visvis, ViTables, vLFD, VPython, VTK, ...

Pensamientos finales (y puntos negativos)

Parece que el «núcleo duro» de ciencia con Python ya ha portado a Python 3, ¿y tú? Este es uno de mis primeros deberes para el 2013.

Por otra parte, siempre hemos de ser críticos para mejorar. En este sentido, la mayor crítica (autocrítica también) que encuentro es que el mundo hispano está muy poco representado, salvo honrosísimas excepciones como Fernando Pérez, Francesc Alted, Sebastian Bassi, ... Y, por lo menos en España, parece que seguimos anclados en el lapidario ¡que inventen ellos! de Unamuno.

Como parte negativa de Pybonacci habría que nombrar el sesgo del blog debido a la formación de sus autores. Ninguno somos expertos en biología, finanzas, química,..., y algunos temas están mal representados. Pero eso tiene fácil solución, esperamos vuestras aportaciones 😛

Y, por mi parte, me despido hasta el año que viene. Espero que tengáis una excelente entrada en el 2013.


photo

Kiko es doctor en ciencias físicas y esta especializado en física de la atmósfera, meteorología y climatología. Además de estar en las nubes es especialista en temas de energías renovables en Iberdrola. Ávido de seguir mejorando siempre está abierto a participar en nuevos proyectos y retos por lo que no dudes en contactarle si necesitas servicios especializados de Python o meteorología.

Comentarios