CAPÍTULO 8 Ciencia de datos
La Ciencia de Datos representa uno de los ámbitos de aplicación más importantes dentro del mundo Python. De hecho, en la encuesta a desarrolladores/as de JetBrains del año 2021 se puede observar que análisis de datos y aprendizaje automático están en primera y cuarta opción en la pregunta ¿para qué utiliza Python?.
Muchos de los paquetes que veremos en esta sección también vienen incluidos por defecto en Anaconda una plataforma para desarrollo de ciencia de datos que dispone de instaladores para todos los sistemas operativos.
El módulo jupyter proporciona un entorno de desarrollo integrado para ciencia de datos, que no es exclusivo de Python, sino que además admite otros lenguajes en su «backend».
Para lanzar el servidor de «notebooks»: $ jupyter notebook
Un «notebook» es un documento que está compuesto por celdas en las que podemos incluir:
- Texto en formato markdown (incluyendo fórmulas).
- Elementos multimedia.
- Código Python ejecutable.
Figura 1: Ejecución de celdas en Jupyter Notebook
En código «markdown», la salida de la celda es la renderización del texto. En código Python, la salida de la celda es el resultado de la última sentencia incluida en la celda.
Jupyter se presenta como una aplicación web en cuya interfaz podemos encontrar distintos elementos que nos permitirán desarrollar nuestras tareas de programación de una forma más cómoda.
Explorador de archivos
Lo primero que veremos al arrancar el servidor de «notebooks» será el explorador de archivos con un diseño muy similar al de cualquier sistema operativo.
Figura 2: Explorador de archivos de Jupyter Notebook
Barra de menú
Menú Fichero
Del estilo de los menús tradicionales de aplicaciones, aquí podemos encontrar las principales funciones sobre ficheros.
Checkpoints: Permiten guardar el estado del «notebook» en un momento determinado para luego poder revertirlo a ese momento del tiempo.
Exportar notebooks: Es posible exportar «notebooks» a una gran variedad de formatos:
- Python (.py)
- HTML(.html)
- js «slides» (.html)
- Markdown (.md)
- reST (.rst)
- PDF vía LaTeX (.pdf)
- asciidoc (.asciidoc)
- custom (.txt)
- LaTeX (.tex)
Ejercicio
Cree un «notebook» de prueba y descárgelo en formato HTML y Markdown.
Figura 3: Menú Fichero de Jupyter Notebook
Menú Edición
Este menú contiene las acciones que podemos realizar sobre una o varias celdas.
Las funciones las podríamos agrupar en gestión de celdas (cortar, pegar, borrar, dividir, unir, mover, etc.) e inserción de imágenes seleccionando desde un cuadro de diálogo.
Menú Vista
Permite modificar el aspecto visual de determinados elementos de la aplicación.
Números de línea: Puede resultar interesante mostrar los números de línea en celdas que contengan código.
Modo presentación (Cell Toolbar Q Slideshow) : Jupyter Notebook ofrece la posibilidad de crear una presentación sobre el documento en el que estamos trabajando. Cada celda se puede configurar con alguno de los siguientes tipos:
- Slide.
- Subslide.
- Fragment.
- Skip.
- Notes.
Etiquetas (Cell Toolbar Q Tags): Es interesante – entre otras – el uso de la etiqueta raises-exception ya que nos permite ejecutar todas las celdas de un «notebook» sin que el sistema se detenga por errores en la celda etiquetada, ya que estamos informando que lanzará una excepción.
Menú Insertar
Insertar celda antes o después de la actual.
Menú Celda
Principalmente enfocado a la ejecución de las celdas que componen el «notebook».
Ejecución de celdas: La ejecución de celdas se puede hacer de forma individual o grupal así como indicando el punto de partida (celda actual).
Tipo de celdas:
Figura 4: Menú Edición de Jupyter Notebook
Figura 5: Menú Vista de Jupyter Notebook
Figura 6: Menú Insertar de Jupyter Notebook
Figura 7: Menú Celda de Jupyter Notebook
- Code: para incluir código (se podrá ejecutar el lenguaje de programación según el «kernel» instalado).
- Markdown: para escribir texto utilizando sintaxis markdown.
- Raw: estas celdas no serán formateadas.
Salida de celdas: La ejecución de las celdas de código tiene (suele tener) una salida. Esta salida se puede ocultar (si interesa). Incluso tenemos control sobre activar o desactivar el «scroll» en caso de que la salida sea muy larga.
Menú Kernel
Permite gestionar el servicio que se encarga de lanzar los «notebooks».
Figura 8: Menú Kernel de Jupyter Notebook
El kernel es la capa de software que se encarga de ejecutar las celdas de nuestro «notebook» que contienen código. Podemos tener instalados distintos «kernels» para un mismo Jupyter Notebook. El kernel se puede interrumpir o reiniciar.
Hay veces, que debido a un error de programación o a procesos muy largos, podemos encontrarnos con el «kernel» bloqueado durante un largo período de tiempo. En estas
ocasiones es útil reiniciarlo para salvar esa situación.
Figura 9: Kernel ocupado
Menú Ayuda
Como cualquier aplicación, existe un menú de ayuda en el que se pueden encontrar enlaces a referencias y manuales.
Uno de los elementos más interesantes de la ayuda es el uso de los «shortcuts»[3]. Aunque hay muchos, dejamos aquí algunos de los más útiles: