Profile picture

Python dev @ Satellogic

Charla Pyconar 2018

Last updated: November 24th, 20182018-11-24Project preview

init Jupyter Notebook

Berenice Larsen Pereyra (AKA berito)

  • Soy platense pero nunca me aprendí las diagonales
  • En 2015 me recibí de Diseñadora textil
  • En 2017 cambié de rumbo y empecé la carrera de Analista Programador en la Universidad Nacional de La Plata
  • Fui co-organizadora de LinuxChixLP
  • Aprendí mucho de data science con la gente de RMOTR.com (ahí conocí Jupyter Notebooks)
  • Fui al PyCamp 2018 y me asocié a PyAr
  • Trabajo en Satellogic y aprendo cómo es esto de hacer satélites

@berelarsenp en github, Medium y twitter

¿Qué es Jupyter Notebook?

Es una aplicación open-source interactiva y basada en la web en la que se puede escribir código en distintos lenguajes de programación, documentarlo con texto enriquecido, ejecutarlo, ver sus resultados y compartirlo a través de dos elementos:

La aplicación web, una herramienta de tipo cliente-servidor basada en el buscador que:

  • utiliza un kernel para soportar lenguajes de programación (inspeccionar y retornar resultados). El kernel por defecto es IPython, pero hay otros de acuerdo al lenguaje;
  • tiene un panel principal o dashboard que muestra los archivos locales y permite abrirlos y/o apagar sus kernels

Los notebooks, una representación de todo el contenido visible en la aplicación web que:

  • se guardan con la extensión .ipynb y por detrás son archivos JSON, lo que permite compartirlos y usar un controlador de versiones para trabajar sobre ellos;
  • contienen celdas de tipo in en las que se escribe y out que muestran el resultado;
  • pueden exportarse a una gran variedad de formatos: .html, .rest, .tex, .pdf, .py, .txt, entre otros

¿Para qué puedo usarlo?

  • Probar código y armar borradores
  • Enseñanza / aprendizaje
  • Preparar presentaciones
  • Armar proyectos

¿Cómo me instalo Jupyter Notebook?

A través de Anaconda. Esta opción instala Python y Jupyter Notebook

anaconda

Con pip

  • pip3 install --upgrade pip -> para actualizar la última versión de pip
  • pip3 install jupyter -> para instalar Jupyter Notebook

¿Cómo corro Jupyter Notebook?

  • en un servidor remoto y acceder vía internet
  • en el escritorio local (sin necesidad de acceso a internet). De esta forma, la computadora oficia de servidor y los notebooks se ejecutan en el buscador, usando como URL el localhost y un puerto, que por defecto es el 8888 (si está usado, usa el siguiente) http://localhost:8888 ó http://127.0.0.1:8888

Para iniciar un servidor local

  1. ctrl+alt+t -> abre la terminal
  2. $ cd un_directorio -> nos ubica en el directorio donde tenemos los notebooks
  3. $ jupyter notebook -> inicia el servidor en ese directorio y abre una pestaña en el buscador en donde el dashboard muestra el contenido de dicho directorio.

console

Para crear un notebook nuevo

  • desde el dashboard: hacer click en el botón New (o abrir alguno existente clickeando en el nombre)
  • desde un notebook activo, las opciones FileNew Notebook abre el dashboard en una nueva pestaña.

Se ubica en el mismo directorio y se muestra en el dashboard

create_new_notebook

Al abrir un notebook, tenemos una sesión interactiva conectada a un kernel que va a permanecer activo aunque se cierre la ventana del buscador. Este kernel se va a reutilizar si volvemos a abrir el mismo notebook desde el dashboard.

Jupyter Notebook Command line

Podemos iniciar un notebook específico desde consola

jupyter notebook notebook.ipynb

O pedirle que inicie el servidor en un puerto específico

jupyter notebook --port 9999

También decirle que inicie el servidor sin abrir el browser para, por ejemplo, usar un editor distinto

jupyter notebook--no-browser

Y ver más opciones

jupyter notebook --help

Interfaz

En el dashboard podemos ver

  • Árbol de archivos
  • Notebooks activos
  • Opciones para subir y crear

dashboard

Cuando seleccionamos uno o más notebooks, aparece un menú que nos permite tomar acciones

dashboard_menu

En un notebook podemos ver varios elementos

  • Nombre: el nombre del notebook. Por defecto es Untitled, pero puede cambiarse, y su extensión será por defecto .ipynb
  • Menú: tiene opciones relacionadas con el funcionamiento de los notebooks
  • Barra de herramientas: muestra las opciones más usadas
  • Celda vacía: se le puede dar distintos formatos

empty_notebook

Modos y atajos

Command mode (ESC)

  • permite navegar entre celdas y a lo largo de todo el notebook usando shortcuts

Edit mode (Enter)

  • permite editar el contenido de una celda

Run cell mode

  • (Shift+Enter): ejecuta la celda seleccionada y salta a la celda siguiente
  • (Ctrl+Enter): ejecuta la celda seleccionada y se queda allí

Definir tipos de celda (en command mode)

  • Code (Y): permite escribir y editar código, soporta syntax highlight y tab completion
  • Markdown (M): permite escribir lenguaje markdown para documentación, explicación, para dar estructura, etc
  • Raw (R): no son evaluadas por el notebook y se usan para escribir resultados
  • Headings (1-5): permite escribir headers en markdown

Funciones básicas

  • Move across cells (Down&Up arrows): moverse a través de las celdas y seleccionar también
  • Copy (C): copiar la celda seleccionada
  • Cut (X): cortar la celda seleccionada
  • Paste above (Shift+V): pegar la celda arriba
  • Paste below (V): pegar la celda abajo
  • Delete (DD): eliminar la celda seleccionada
  • Insert cell above (A): insertar celda arriba
  • Insert cell below (B): insertar celda abajo
  • Save (Ctrl+S): guardar el notebook
  • Show keyboard shortcuts (H): muestra una ventana con atajos del teclado

Manejar el kernel

  • Restart kernel (00): reiniciar el kernel cuando muestra algún error de conexión o queremos refrescar
  • Interrupt kernel (ii): interrumpir el kernel cuando algún cálculo toma mucho tiempo

Compartirlo

Podemos compartir un notebook de una URL pública a través de nbviewer, mostrándolo como una página estática.

¡Muchas gracias!

@berelarsenp en github, Medium y twitter

Notebooks AI
Notebooks AI Profile20060