tutorial de ipython

Upload: diego-camilo-pena-ramirez

Post on 11-Feb-2018

243 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/23/2019 Tutorial de IPython

    1/67

    1

    Universidad Nacional de

    Colombia

    Material de apoyo elaborado como apoyo a

    la materia

    Mtodos Numricos

    Diego Camilo Pea Ramrez (docente)

    Twitter:@nervencid

    TUTORIAL DE IPYTHON

  • 7/23/2019 Tutorial de IPython

    2/67

    2

    CONTENIDO

    INTROCUCCIN IPYTHON

    INSTALACIN IPYTHON CONSOLA CARPETAS Y CONSOLA FUNCIONES MAGICAS (%magic) Y COMANDOS

    ESPECIALES

    CONSOLA QT NOTEBOOK

  • 7/23/2019 Tutorial de IPython

    3/67

    3

    CONTENIDO

    QUE SE PUEDE HACER CON HTML E

    IPYTHON? QUE PODEMOS HACER DENTRO DEL

    NOTEBOOK? QUE PODEMOS HACER DENTRO DEL

    NOTEBOOK?(NOTA IMPORTANTE) BIBLIOGRAFIA

  • 7/23/2019 Tutorial de IPython

    4/67

    4

    INTRODUCCINPython es una herramienta poderosa en el anlisisnumrico y ofrece , sin embargo muchas veces noparece ser muy amigable para quienes no tienen niidea de programacin.

    Otra necesidad que nos incumbe, es la necesidad detener a mano todas las libreras necesarias paraanlisis numrico sin necesidad de padecerproblemas de compatibilidad o de versiones.

    Como lograr esto?, la respuesta puede venir de elnavegador Web, y de la creciente tendencia deltrabajo colaborativo a travs de las tecnologas de lainformacin.

  • 7/23/2019 Tutorial de IPython

    5/67

    5

    IPython es un shell interactivoque aade funcionalidadesextra al modo interactivoincluido con Python, comoresaltado de lneas y errores

    mediante colores, unasintaxis adicional para elshell, autocompletadomediante tabulador devariables, mdulos y

    atributos; entre otrasfuncionalidades. Es uncomponente del paqueteSciPy.[1]

    IPYTHON

  • 7/23/2019 Tutorial de IPython

    6/67

    6

    IPython viene siendo

    desarrollado desde el ao2001 por el ColombianoFernando Prez, quien enMarzo de 2013 recibi elpremio de la Free Software

    Foundation[2]

    IPYTHON

  • 7/23/2019 Tutorial de IPython

    7/67

    7

    Las instrucciones de instalacin para los diferentes

    entornos tanto Linux, MacOS o Windows puedenencontrarse en la pagina oficial de Ipython [3]:

    http://ipython.org/install.html

    INSTALACION IPYTHON

    http://ipython.org/install.htmlhttp://ipython.org/install.html
  • 7/23/2019 Tutorial de IPython

    8/67

    8

    La consola es la herramienta bsica de desarrollo deIPython es la primera interfaz de usuario con la que nosencontramos para iniciarla solo deberemos escribir, bien

    sea en la linea de comandos de windows:

    O la teminal de linux (o MacOS).

    CONSOLA

  • 7/23/2019 Tutorial de IPython

    9/67

    9

    Apariencia en Windows (XP en este caso):

    CONSOLA

  • 7/23/2019 Tutorial de IPython

    10/67

    1

    0

    Apariencia en Linux:

    CONSOLA

  • 7/23/2019 Tutorial de IPython

    11/67

    1

    1

    Otra forma de iniciar en la consola IPython puede ser:

    CONSOLA

    Lo cual cambiara ligeramente la presentacin esttica delshell, esto con el propsito de poder diferenciar sesiones.

  • 7/23/2019 Tutorial de IPython

    12/67

    1

    2

    Desde aqu ya podremos trabajar con la sintaxis dePython (Para este tutorial Python 3).

    CONSOLA

  • 7/23/2019 Tutorial de IPython

    13/67

    1

    3

    Podemos llamar la ayuda general de IPython de lasiguiente forma escribiendo en la linea de comandos:

    CONSOLA

  • 7/23/2019 Tutorial de IPython

    14/67

    1

    4

    Lo cual desplegara lo siguiente:

    CONSOLA

  • 7/23/2019 Tutorial de IPython

    15/67

    1

    5

    Tambin podemos pedir ayuda de cualquier funcin omtodo de IPython de forma similar, por ejemplo siqueremos obtener informacin de '%magic' lo podemoshacer as:

    CONSOLA

  • 7/23/2019 Tutorial de IPython

    16/67

    1

    6

    Tambin podemos llamar la ayuda rapida de IPython dela siguiente forma:

    CONSOLA

  • 7/23/2019 Tutorial de IPython

    17/67

    1

    7

    Lo cual desplegara lo siguiente:

    CONSOLA

  • 7/23/2019 Tutorial de IPython

    18/67

    1

    8

    Tambin podemos obtener ayuda de lo que creemosmientras vamos en marcha, por ejemplo si tenemos:

    CONSOLA

  • 7/23/2019 Tutorial de IPython

    19/67

    1

    9

    Podemos navegar en las carpetas con el comando 'cd' dela siguiente forma, por ejemplo:

    CARPETAS Y CONSOLA

  • 7/23/2019 Tutorial de IPython

    20/67

    2

    0

    Sin embargo la poltica de Ipython es que el lenguaje esteprimero, por lo cual 'cd', puede asignarse como una variableaunque esto har que no podamos usar el comando 'cd' :

    CARPETAS Y CONSOLA

  • 7/23/2019 Tutorial de IPython

    21/67

    2

    1

    Esto no es problema ya que podemos utilizar el comando'%cd' de la siguiente forma, por ejemplo:

    CARPETAS Y CONSOLA

  • 7/23/2019 Tutorial de IPython

    22/67

    2

    2

    Como ya habamos visto el comando '%cd' nos permitenavegar entre carpetas, ya aunque NO ES VALIDO en lasintaxis estndar de IPython, nos permiten controlarIPython como tal.

    Por ejemplo si deseamos correr un archivo podemos usar'%run' de la siguiente forma, no olvidar ubicarse en lacarpeta que contiene dicho archivo (Ayudarse con la teclaTAB):

    FUNCIONES MAGICAS (%magic) YCOMANDOS ESPECIALES

  • 7/23/2019 Tutorial de IPython

    23/67

    2

    3

    Tambin podemos ver su cdigo fuente con el comando'%edit':

    FUNCIONES MAGICAS (%magic) YCOMANDOS ESPECIALES

  • 7/23/2019 Tutorial de IPython

    24/67

    2

    4

    IPython cuenta con otros comando especiales para hacerpruebas de red como '!ping':

    FUNCIONES MAGICAS (%magic) YCOMANDOS ESPECIALES

  • 7/23/2019 Tutorial de IPython

    25/67

    2

    5

    Con '%pwd' podemos saber en que directorio estamosactualmente:

    FUNCIONES MAGICAS (%magic) YCOMANDOS ESPECIALES

  • 7/23/2019 Tutorial de IPython

    26/67

  • 7/23/2019 Tutorial de IPython

    27/67

    2

    7

    Mas informacin sobre comandos especiales puede serconsultada aqu:

    http://ipython.org/ipython-doc/dev/interactive/tutorial.html

    FUNCIONES MAGICAS (%magic) YCOMANDOS ESPECIALES

    http://ipython.org/ipython-doc/dev/interactive/tutorial.htmlhttp://ipython.org/ipython-doc/dev/interactive/tutorial.html
  • 7/23/2019 Tutorial de IPython

    28/67

    2

    8

    Otra herramienta til de IPython es la consola QT, la cualpuede ser desplegada si escribimos en el terminal o lineade comandos:

    CONSOLA QT

  • 7/23/2019 Tutorial de IPython

    29/67

    2

    9

    CONSOLA QT

  • 7/23/2019 Tutorial de IPython

    30/67

    3

    0

    Con la linea anterior los comandos '--pylab' e 'inline' nospermite usar a 'pylab' como 'backend' y nos permitegenerar grficas en la misma consola, ademas de corregirde forma limitada cosa que no se puede hacer con la

    'terminal' o la linea de comandos estndar

    CONSOLA QT

  • 7/23/2019 Tutorial de IPython

    31/67

    3

    1

    CONSOLA QT

  • 7/23/2019 Tutorial de IPython

    32/67

    3

    2

    Con la linea anterior los comandos '--pylab' e 'inline' nospermite usar a 'pylab' como 'backend' y nos permitegenerar grficas en la misma consola, ademas de corregirde forma limitada cosa que no se puede hacer con la

    'terminal' o la linea de comandos estndar

    CONSOLA QT

  • 7/23/2019 Tutorial de IPython

    33/67

    33

    Para mas informacin podemos consultar aqu:

    http://ipython.org/ipython-doc/dev/interactive/qtconsole.html

    CONSOLA QT

    http://ipython.org/ipython-doc/dev/interactive/qtconsole.htmlhttp://ipython.org/ipython-doc/dev/interactive/qtconsole.htmlhttp://ipython.org/ipython-doc/dev/interactive/qtconsole.htmlhttp://ipython.org/ipython-doc/dev/interactive/qtconsole.html
  • 7/23/2019 Tutorial de IPython

    34/67

    34

    IPython no posee simplemente la consola, sino todo unentorno de desarrollo integrado mediante el cualpodemos escribir y correr cdigo, grficar, e inclusodocumentar sobre la marcha. Esto gracias al Notebook, elcual nos ofrece una interfaz de usuario amigable ycomoda para poder aprovechar mas eficientemente lascaracteristicas de IPython, podemos lanzar el Notebookdesde la 'terminal' de Linux (o MacOS) as:

    O la linea de comandos de windows as:

    NOTEBOOK

  • 7/23/2019 Tutorial de IPython

    35/67

    35

    Automticamente se debera abrir el navegador principal(Chrome, Firefox, Opera, etc...) y acceder a la interfaz

    web del Notebook de Ipython.

    NOTEBOOK

  • 7/23/2019 Tutorial de IPython

    36/67

    36

    NOTEBOOK

  • 7/23/2019 Tutorial de IPython

    37/67

    37

    NOTEBOOK

    La direccin del localhost si corremosEl Notebook localmente

    Directorio sobre el cual estaTrabajando el Notebook

    Actualizar lista deNotebooks

    Crear nuevoNotebook

    Borrar o cerrar elNotebook

    Lista deNotebooks

    O OO

  • 7/23/2019 Tutorial de IPython

    38/67

    38

    Por defecto IPython trabaja en el 'home' del usuario si esLinux o en 'C:\Documents and Settings\Usuario' si esWindows. Tambien podemos lanzar el Notebook desdeuna carpeta en especifico como por ejemplo:'/home/diegonimus/IPython', de la siguiente forma o biennavegar en las carpetas del equipo con el comando '%cd'visto anteriormente:

    NOTEBOOK

    OJO!, Esto es la carpeta en la que se deseeTrabajar

    NOTEBOOK

  • 7/23/2019 Tutorial de IPython

    39/67

    39

    Al crear un nuevo Notebook, nos toparemos con la

    siguiente interfaz:

    NOTEBOOK

    Titulo del documento yLa ultima vez que fue guardado

    Barra de Mens

    Barra deHerramientas Celda

    Tipo de laCelda seleccionada

    NOTEBOOK

  • 7/23/2019 Tutorial de IPython

    40/67

    40

    Los comandos de la consola funcionan de igual forma enel Notebook, solo que podemos crear pequeosfragmentos (o cell) de codigo paralelamente adocumentacion y ejecutarlos en tiempo real bien seahaciendo click en "run cell" o por medio de teclado

    mediante "Shift+Enter".

    NOTEBOOK

    NOTEBOOK

  • 7/23/2019 Tutorial de IPython

    41/67

    41

    NOTEBOOK

    Run CellInterrupt

    NOTEBOOK

  • 7/23/2019 Tutorial de IPython

    42/67

    42

    Las celdas (cell) son la unidad fundamental dentro del

    notebook y IPython ofrece los siguientes tipos de celdas:

    Code: Aqui escribimos el codigo Markdown: Sirve para para escribir texto como

    comentarios, teorias, etc... Raw Text: Al igual que el 'Markdown' puede servir para

    escribir comentarios, sin embargo puede ser util tambienpara documentar codigo que no deseemos que seejecute

    Heading 1-6: Al ser un documento web, el Notebook nospermite embeber etiquetado HTML dentro de nuestrodocumento siendo estas etiquetas 'Heading', las mismasde HTML

    NOTEBOOK

    NOTEBOOK

  • 7/23/2019 Tutorial de IPython

    43/67

    43

    Para tener mas ayuda sobre los atajos de teclado , use

    Ctrl+m+h

    NOTEBOOK

    QUE SE PUEDE HACER CON HTML E

  • 7/23/2019 Tutorial de IPython

    44/67

    44

    Las celdas tipo "Markdown" pueden procesar algunasetiquetas de HTML, lo cual nos permite beneficiarnos devarias caractersticas de HTML como por ejemplo:

    QUE SE PUEDE HACER CON HTML EIPYTHON?

    QUE SE PUEDE HACER CON HTML E

  • 7/23/2019 Tutorial de IPython

    45/67

    45

    Embeber paginas web dentro del documento:

    QUE SE PUEDE HACER CON HTML EIPYTHON?

    URL de la pgina

    QUE SE PUEDE HACER CON HTML E

  • 7/23/2019 Tutorial de IPython

    46/67

    46

    Embeber paginas web dentro del documento (resultadoesperado):

    QUE SE PUEDE HACER CON HTML EIPYTHON?

    QUE SE PUEDE HACER CON HTML E

  • 7/23/2019 Tutorial de IPython

    47/67

    47

    Embeber videos de youtube:

    QUE SE PUEDE HACER CON HTML EIPYTHON?

    URL del video

    QUE SE PUEDE HACER CON HTML E

  • 7/23/2019 Tutorial de IPython

    48/67

    48

    Embeber videos de youtube (resultado esperado):

    QUE SE PUEDE HACER CON HTML EIPYTHON?

    QUE SE PUEDE HACER CON HTML E

  • 7/23/2019 Tutorial de IPython

    49/67

    49

    Embeber videos guardados localmente:

    QUE SE PUEDE HACER CON HTML EIPYTHON?

    Ubicacin y nombre delArchivo de video

    QUE SE PUEDE HACER CON HTML E

  • 7/23/2019 Tutorial de IPython

    50/67

    50

    Embeber videos guardados localmente (resultadoesperado):

    QUE SE PUEDE HACER CON HTML EIPYTHON?

    QUE SE PUEDE HACER CON HTML E

  • 7/23/2019 Tutorial de IPython

    51/67

    51

    NOTA IMPORTANTE: Algunos tag de HTML5, fallansegn el navegador, como por ejemplo el de video delejemplo anterior, por ejemplo es aconsejable probar elnotebook con varios navegadores, en el ejemplo anterior el

    ejemplo fall con firefox y chrome, pero funcion conOpera

    QUE SE PUEDE HACER CON HTML EIPYTHON? (NOTA IMPORTANTE)

    QUE SE PUEDE HACER CON HTML E

  • 7/23/2019 Tutorial de IPython

    52/67

    52

    Embeber audio alojado localmente:

    QUE SE PUEDE HACER CON HTML EIPYTHON?

    Ubicacin y nombre delArchivo de Audio

    QUE SE PUEDE HACER CON HTML E

  • 7/23/2019 Tutorial de IPython

    53/67

    53

    Embeber audio alojado localmente (resultado esperado):

    QUE SE PUEDE HACER CON HTML EIPYTHON?

    QUE PODEMOS HACER DENTRO

  • 7/23/2019 Tutorial de IPython

    54/67

    54

    Como hemos visto uno de los principales fuertes deIPython es su Notebook, sin embargo hasta ahora hemosvisto que se puede correr cdigo en tiempo real,

    documentarlo y trabajar con etiquetado HTML.

    Sin embargo tambin podemos mejorar el contenido denuestro notebook, por ejemple insertar ecuaciones otrabajar con lgebra simblica como se muestra acontinuacin:

    QUE PODEMOS HACER DENTRODEL NOTEBOOK?

    QUE PODEMOS HACER DENTRO

  • 7/23/2019 Tutorial de IPython

    55/67

    55

    QUE PODEMOS HACER DENTRODEL NOTEBOOK?

    QUE PODEMOS HACER DENTRO

  • 7/23/2019 Tutorial de IPython

    56/67

    56

    QUE PODEMOS HACER DENTRODEL NOTEBOOK?

    O incluso escribir ecuaciones en formato LaTex con celdas'Markdown':

    QUE PODEMOS HACER DENTRO

  • 7/23/2019 Tutorial de IPython

    57/67

    5

    7

    QUE PODEMOS HACER DENTRODEL NOTEBOOK?

    Tambin podemos escribir ecuaciones en formato LaTex,con las celdas de cdigo, usando Python:

    QUE PODEMOS HACER DENTRO

  • 7/23/2019 Tutorial de IPython

    58/67

    5

    8

    QUE PODEMOS HACER DENTRODEL NOTEBOOK?

    Otra caracterstica muy til es poder trabajar con grficasempleando Matplotlib, veremos dos formas de trabajar congrficas: la primera permite embeber la grfica directamentesobre el documento en el que estamos trabajando, antes de

    hacer esto recordemos que lo podemos hacer en la consolaQT, llamndola desde el Notebook de la siguiente forma:

    QUE PODEMOS HACER DENTRO

  • 7/23/2019 Tutorial de IPython

    59/67

    5

    9

    QUE PODEMOS HACER DENTRODEL NOTEBOOK?

    Ahora bien la primera forma de trabajar con grficas dentrodel mismo Notebook es usando como 'backend' solo 'pylab'ejecutando la siguiente celda:

    QUE PODEMOS HACER DENTRO

  • 7/23/2019 Tutorial de IPython

    60/67

    6

    0

    QUE PODEMOS HACER DENTRODEL NOTEBOOK?

    Probemos con una grfica de puntos aleatorios, lo cualdebera verse as:

    QUE PODEMOS HACER DENTRO

  • 7/23/2019 Tutorial de IPython

    61/67

    6

    1

    QDEL NOTEBOOK?

    La segunda forma es utilizando las libreras QT, ANTES deejecutar la siguiente linea debemos REINICIAR para NOcausar conflictos EN CASO de haber usado previamentecomo 'backend' solamente 'pylab' (con la linea: '%pylab

    inline'):

    QUE PODEMOS HACER DENTRO

  • 7/23/2019 Tutorial de IPython

    62/67

    6

    2

    QDEL NOTEBOOK?

    Si probamos con una grfica debera abrirse una ventanaindependiente al navegador:

    QUE PODEMOS HACER DENTRO

  • 7/23/2019 Tutorial de IPython

    63/67

    6

    3

    QDEL NOTEBOOK?

    Finalmente para concluir cabe sealar que podemos conHTML como embeber imgenes (aveces falla y se debetener cuidado con que tipo de imagen es) con cdigo:

    QUE PODEMOS HACER DENTRO

  • 7/23/2019 Tutorial de IPython

    64/67

    6

    4

    QDEL NOTEBOOK?

    QUE PODEMOS HACER DENTRO

  • 7/23/2019 Tutorial de IPython

    65/67

    6

    5

    QDEL NOTEBOOK?

    O incluso video, bien sea de youtube:

    BIBLIOGRAFIA

  • 7/23/2019 Tutorial de IPython

    66/67

    6

    6

    BIBLIOGRAFIA

    [1] http://es.wikipedia.org/wiki/IPython[2] http://fperez.org/[3] http://ipython.org/install.html[4] http://ipython.org/videos.html[5] http://ipython.org/documentation.html[6] http://ipython.org/ipython-doc/rel-0.13.1/index.html[7] http://nbviewer.ipython.org/[8]https://github.com/ipython/ipython/wiki/A-gallery-of-interes

    ting-IPython-Notebooks

    SOBRE EL AUTOR Y EL CONTENIDO

    http://es.wikipedia.org/wiki/IPythonhttp://fperez.org/http://ipython.org/install.htmlhttp://ipython.org/videos.htmlhttp://ipython.org/documentation.htmlhttp://ipython.org/ipython-doc/rel-0.13.1/index.htmlhttp://nbviewer.ipython.org/https://github.com/ipython/ipython/wiki/A-gallery-of-interesting-IPython-Notebookshttps://github.com/ipython/ipython/wiki/A-gallery-of-interesting-IPython-Notebookshttps://github.com/ipython/ipython/wiki/A-gallery-of-interesting-IPython-Notebookshttps://github.com/ipython/ipython/wiki/A-gallery-of-interesting-IPython-Notebookshttp://nbviewer.ipython.org/http://ipython.org/ipython-doc/rel-0.13.1/index.htmlhttp://ipython.org/documentation.htmlhttp://ipython.org/videos.htmlhttp://ipython.org/install.htmlhttp://fperez.org/http://es.wikipedia.org/wiki/IPython
  • 7/23/2019 Tutorial de IPython

    67/67

    6

    7

    A menos que se informe de otra manera esta obra est bajo una licencia deCreative Commons Reconocimiento-NoComercial-CompartirIgual 2.5

    Colombia.

    Diego Camilo Pea Ramrez

    Bogot, Colombia

    Abril de 2013

    Twitter: @nervencid