¿Cuáles son algunos consejos para mejorar la productividad en los portátiles Jupyter?

Como ya mencionó Roman Trusov, solo debe usar el cuaderno Jupyter [1] (abreviado JN de ahora en adelante) para fines de creación de prototipos .

Escribir código limpio y mantenible en JN (y en general, en formato de cuaderno) es muy complicado .

A veces es posible. Databricks [2] (un proveedor famoso de servicios de Spark) incluso ha lanzado un flujo de trabajo utilizando computadoras portátiles. Revisa su publicación en el blog [3] si tienes curiosidad.

La mayoría de las veces no lo es: el código se vuelve redundante, gran cantidad de acoplamiento entre los detalles de implementación y los datos, la ejecución dependiente del estado …

Para mitigar los límites de JN, he adoptado el siguiente flujo de trabajo :

  1. Implementar rápidamente un POC.
  2. Refactorizar células similares en funciones
  3. Mueva estas funciones a diferentes scripts (digamos uno para el procesamiento de datos, uno para funciones útiles, uno para el aumento de datos …)
  4. Mejore: haga que sean más generales, escriba pruebas unitarias, envíe una solicitud de extracción para que sus colegas / compañeros lo revisen …

Dicho esto, a veces dejo visualizaciones dentro de un JN ya que es más conveniente.

Si está buscando alternativas y le importa la reproducibilidad, existe una nueva herramienta de creación de informes llamada stitch [4]

Tom Augspurger [5] (su autor) ha escrito una publicación en el blog sobre la herramienta que explica los problemas que intenta resolver. Compruébelo [6] si desea una alternativa a los JN para informar.

La mejor de las suertes.

Si le ha gustado leer esta respuesta, asegúrese de seguirme para obtener más información: http://quora.com/profile/Yassine…

Notas al pie

[1] Proyecto Jupyter

[2] Hacer grandes datos simples con Databricks

[3] Flujos de trabajo de portátiles: la forma más fácil de implementar tuberías de Apache Spark

[4] puntada – puntada 0.3.4 documentación

[5] Tom Augspurger (@TomAugspurger) | Gorjeo

[6] DatasFrame

Aquí están algunos de mis favoritos:

La paleta de mando

Cmd + Shift + P : abre la paleta de comandos y le permite simplemente escribir para ejecutar un comando de menú. También es útil para aprender otros atajos de teclado.

Utilice Docstrings en lugar de cargar documentación.

Cuando está escribiendo un método, puede usar Shift + Tab para acceder a la cadena de documentos, y presionando Shift y presionando la tecla Tab una vez más acceder a una cadena de documentos extendida.

Escriba comandos de shell desde dentro del cuaderno

Esto es especialmente útil si su portátil está alojado en un servidor remoto. Puede ejecutar algo como pip install –upgrade pandas si desea actualizar el paquete de pandas sin dejar su computadora portátil.

Compartiendo tus cuadernos con nbviewer

Si tiene acceso a Dropbox o cualquier otra herramienta que le permita cargar rápidamente un archivo de cuaderno en línea, puede ir a nbviewer, pegar el enlace de Dropbox (o equivalente) y su cuaderno se procesará, listo para compartir con cualquier persona en un instante. .

Espero que sean útiles. Hace poco publiqué 28 consejos, trucos y atajos para el Cuaderno Jupyter. Si quieres leer más, puedes consultar la publicación.

En mi blog, presento 10 consejos para usar los portátiles Jupyter:

1. Use virtualenv para crear un entorno autónomo

2. Ir con Python 3

3. Incluir requisitos.txt

4. Hacer todas las importaciones en la primera celda.

5. Comience sucio y conserve su calado.

6. Envolver el contenido de la celda en una función

7. Utilice Joblib para cachear la salida

8. Hacer secciones del cuaderno autónomo

9. Reutilizar nombres de variables.

10. Usar aserciones para probar funciones de utilidad.

Necesitas saber cuándo parar.

Jupyter es una herramienta de creación de prototipos, no un IDE, y te anima a escribir código muy pirateado que no siempre se unen. Esta bien. Pero una vez que obtenga la esencia de lo que funciona y lo que no, y cómo debe organizarse su código de “producción”, debe cambiar. De lo contrario se obtiene un sumidero de productividad.