Читать книгу Python a fondo - Óscar Ramírez Jiménez - Страница 21
1.3.6 Aplicaciones científicas y manejo de datos
ОглавлениеPython ya es un referente en la comunidad científica y en el manejo de datos a gran escala dada su simpleza y su claridad a la hora de programarlo. Esto hace que su barrera de entrada sea muy baja y cada vez más científicos den el salto a usarlo.
En el ámbito científico se pueden definir diferentes áreas en las que encontrar soluciones implementadas en Python para categorías como manejo de datos, realización de cálculos y visualización de los datos.
Para el manejo de datos se dispone de dos librerías principales, NumPy y Pandas, las cuales permiten manipular grandes cantidades de datos y hacer operaciones masivas sobre los mismos, como aplicar funciones a vectores de datos o hacer operaciones con matrices de forma simple y altamente eficiente.
NumPy (https://numpy.org/) es un paquete fundamental que contiene herramientas para interactuar con vectores de N dimensiones y realizar operaciones matemáticas sobre ellos. Además, tiene integración con código C++ o Fortran, y otras muchas utilidades relacionadas con el manejo de datos científicos, como operaciones de álgebra lineal, transformada de Fourier, etc. NumPy está orientado a operar de forma altamente eficiente pero enfocada a operaciones con vectores N dimensionales.
Pandas (https://pandas.pydata.org/) es una librería especializada en realizar operaciones altamente eficientes sobre conjuntos de datos grandes de varias dimensiones, organizados en datasets y permitiendo manipularlos de forma simple.
Tanto Pandas como NumPy forman parte del proyecto SciPy (https://www.scipy.org/), el cual es un ecosistema basado en Python para el uso científico.
Aunque se ha visto cómo se puede interactuar con los datos, es importante disponer de una herramienta potente y fácil de usar para realizar pruebas y cálculos. En este segmento destaca la herramienta Jupyter Notebook (https://jupyter.org/), la cual permite interactuar continuamente con los datos que se están analizando, además de poder exportar los resultados, compartirlos, evaluar solamente parte de los cálculos y un largo etcétera de funcionalidades que ayudan enormemente al desarrollo de ideas científicas. Además, dispone de versión online, y muchos servicios online soportan el formato para mejorar la visualización de documentos. Este es el caso de GitHub (https://github.com/), si se aloja el código en sus repositorios y detecta que el fichero que se quiere mostrar tiene la extensión de Jupyter Notebook, la interfaz automáticamente se actualiza para amoldarse a la vista natural de un notebook.
Una vez visto cómo se pueden manipular los datos y trabajar continuamente con ellos hasta conseguir los resultados del estudio científico, llega la parte de la visualización de datos. En este caso, Python permite realizar visualizaciones de datos avanzadas, e incluso interactivas, con librerías propias.
Una de las librerías fundamentales para la visualización de datos es Matplotlib (https://matplotlib.org/). Aunque es una de las librerías más básicas, es también la más utilizada en proyectos que necesitan realizar visualizaciones más avanzadas, dado que es altamente eficiente y contiene multitud de tipos de gráficos soportados, que van desde los gráficos de líneas hasta los gráficos de puntos o mapas de calor, pasando por gráficos de barras.
Para la representación estadística se hace uso de la librería Seaborn (https://seaborn.pydata.org/), la cual usa Matplotlib, pero añade nuevos tipos de visualizaciones más orientados a la estadística, como gráficos que soportan rangos de errores y una interfaz de alto nivel para hacer el uso intuitivo.
Por último, cabe destacar la librería Bokeh (https://bokeh.org/), la cual no solo permite mostrar gráficos tanto en dos dimensiones como en tres dimensiones, sino hacer interacciones con ellos, permitiendo a los usuarios ver de forma atractiva e interactiva los datos representados.
Cabe mencionar que existen distribuciones de paquetes científicos que unen muchas de las herramientas que se han expuesto en este apartado en un solo paquete de software. Así, la instalación será una sola, en vez de instalar cada herramienta por separado.
Un ejemplo de distribución científica es Anaconda (https://www.anaconda.com/), que, gracias a sus herramientas añadidas, comprende desde el manejo simple de datos con Jupyter Notebook hasta el visualizado de datos con Bokeh o Matplotlib, pasando por herramientas de inteligencia artificial como Scikit-learn o TensorFlow. Utiliza librerías como NumPy y Pandas y gestiona las dependencias de paquetes con Conda (https://docs.conda.io/en/latest/). Anaconda es una distribución completa que contiene todas las herramientas necesarias para la mayoría de ámbitos de la ciencia, la investigación y la ingeniería de datos, y es utilizada para instalar todos los componentes de una vez y bajo el mismo entorno.