#!/usr/bin/env python # coding: utf-8 # # Introducción a IPython Jupyter # # # ## ¿Que es Jupyter? # # Una de las características más útiles de Python es su intérprete interactivo. Esto permite el ensayo muy rápido de ideas. Sin embargo, el intérprete suministrado con la distribución estándar de Python es algo limitada para el uso interactivo extendida. # # El objetivo de IPython es crear un entorno completo para la computación interactiva y exploratorio. Para apoyar este objetivo, IPython tiene tres componentes principales: # # * Un terminal de Python interactiva mejorada. # * Un modelo de comunicación de los dos procesos desacoplado, lo que permite que varios clientes se conectan a un núcleo de cálculo, más notablemente el portátil basado en la web # * Una arquitectura de computación paralela interactiva. # # Jupyter (originalmente llamado IPython) fue desarrollado por Fernando Perez pensando en facilitar la reproducibilidad científica. Hoy en día cuenta con un gran número de colaboradores. # # ## Corriendo Jupyter # # Existen tres formas de correr Jupyter: # # * Terminal # ``` # $ ipython # ``` # # * Consola Qt # ``` # $ jupyter qtconsole # ``` # # * Notebook # ``` # $ jupyter notebook # ``` # # ## Comenzemos # In[1]: import numpy as np # **Tab** nos completa o nos muestra las opciones (usa un mismo namespace para todo el notebook) # In[2]: a = np.array([1, 2, 3]) a. # **Shift-Tab** nos da la documentación de la función - método # In[3]: np.array() # ## Magic # # Jupyter define las *magic* que son comando (generalmente comienzan con %) que nos permite, entre varias cosas, hacer uso de nuestro shell, correr código, medir tiempos, etc. # In[4]: get_ipython().run_cell_magic('timeit', '', '\na = 0\nfor i in range(10000):\n a += 1\n') # In[5]: get_ipython().getoutput('ls') # Podemos correr coódigo R y capturar la salida como variables para Python. Se necesita el paquete [rpy2](https://rpy2.readthedocs.io/en/version_2.8.x/) # ## De IPython a Jupyter # # El cambio de nombre, vino por un gran cambio en el proyecto. La nueva versión del *notebook* nos permite cargar *kernels* de Julia, PYthon o R # # ## Introduciendo texto # # Cambiando la celda de **codigo** a **markdown** podemos introducir texto, [link](https://ipython.org/), latex # # $$ a^{2} = b^{2} + c^{2} \;\;\; a, b, c\; \exists\; N $$ # # Imagenes, videos, etc # In[9]: from IPython.display import YouTubeVideo YouTubeVideo("bxtLxUh03gc") # ## Ciencia reproducible # # Podemos subir el *notebook* a nuestro servido git preferido y luego con [nbviewer](https://nbviewer.jupyter.org/) renderizarlo para que alguien lo vea. # # Por ej, [este notebook](http://nbviewer.ipython.org/github/pewen/ten/blob/master/IPython_notebook/01_Puntos_aleatorios_en_esfera.ipynb) # In[6]: #Este css es trabajo de @LorenaABarba y su grupo from IPython.core.display import HTML css_file = '../css/personal.css' HTML(open(css_file, "r").read()) # ##### Licencia # # El código esta licenciado bajo MIT. # # La documentación bajo: # # Creative Commons License
This work is licensed under a Creative Commons Attribution 4.0 International License.