Wednesday, May 11, 2016

Jupyter notebook

Jupyter notebook


Jupyter notebooks são páginas visíveis num browser (Firefox, etc) que permitem misturar texto, código executável em Python, imagens, figuras etc.

Este tipo de página é um recurso que permite estudo interativo, onde o leitor pode executar e modificar código e ver os resultados sem sair da página que está lendo.

Neste curso faremos a experiência de usar estes notebooks para nossos textos sobre Python.

À propósito, o nome da aplicação que ativa estes notebooks vem das três linguagens de programação suportadas pelo engine:

Jupyter = Julia + Python + R

Vejamos se o Jupyter esta instalado em seu notebook. Se você baixou Anaconda 3 com sucesso então o Jupyter deve estar instalado. Em todo caso o teste é simples:
  • abra uma janela de comando (Power Shell ou cmd.exe) e digite:
  •  >>jupyter notebook
  • após algum tempo deveriam aparecer uma série de mensagens do systema:
Microsoft Windows [Version 10.0.10586]
(c) 2015 Microsoft Corporation. All rights reserved.

C:\Users\ps>jupyter notebook
[I 20:36:12.075 NotebookApp] Serving notebooks from local directory: C:\Users\ps
[I 20:36:12.079 NotebookApp] 0 active kernels
[I 20:36:12.080 NotebookApp] The IPython Notebook is running at: http://localhost:8888/
[I 20:36:12.083 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
[I 20:38:26.353 NotebookApp] Kernel started: 1cd69f62-8ce4-42e4-b51a-0306813efc3f
 Em seguida o seu browser é ativado e nele aparece um tab intitulado Desktop/jupyter, com uma página tendo este logo no cabeçalho:

 
 Se tudo isto ocorrer então parabens, você tem o Jupyter instalado e ativo. Em todo caso voce pode obter mais informação aqui.

Explicaremos no laboratório como usar um notebook destes (é simples). Se você não presenciar existem montes de referências na internet. Aqui tem breve ajuda no site oficial do projeto Jupyter. Existem videos tutoriais no YouTube, como este aqui. Uma referência bem completa que vale a pena ver está aqui.





Vejamos como usar o Jupyter em nossos estudos de Python. Preparei uma página jupyter notebook com mini-aula de web scraping. Faça de conta que é página do curso e treine como usá-la. 

  1. O primeiro passo é baixar o notebook usando o link dado aqui.
  2.  Note que é baixada uma página cheia de códigos e html. Isto é normal.
  3. Use o menu em seu browser para salvar esta página. No Firefox é preciso ativar a barra de menu (botão direito, clique no topo, selecione Menu Bar).
  4. Clicar File\Save Page As...\text files, um nome para a página e o sufixo ".ipynb" (quer dizer "interactive python notebook")
  5. No diretório onde seu browser salvou a página deve haver um arquivo "nome.ipynb".
  6.  Ligue o jupyter como explicado acima e na página que é aberta você pode navegar até o diretório onde salvou o arquivo "nome.ipynb". Clique no arquivo e o notebook jupyter deverá ser aberto no browser.
  7.  Dai em diante estude o conteúdo, execute os códigos e script Python e divirta-se.
  8. À propósito a página que você baixou tem o título

    Reverse engineering a dynamic web page



Uma vez tendo aberto um notebook em seu browser observe o layout do mesmo. No topo você tem um toolbar com menus genéricos para salvar o notebook, editar, help, etc. O menu Cell tem um submenu All Output que por sua vez tem um submenu Clear. Este é útil para limpar e resetar outputs de todas execuções de scripts e comandos Python armazenados no notebook. Recomendo que use-o sempre que abrir um notebook pela primeira vez.

Um notebook é composto essencialmente de dois tipos de células (cells): code cells e markdown cells.

Markdown cells contém texto. O nome markdown vem do tipo de formatação usada para escrever estes textos. Markdown é uma espécie de HTML super simplificado que permite humanos escreverem textos padrão html naturalmente e sem dor. Você pode encontrar mais informação sobre Mardown aqui.

Code cells contém código Python que pode se r executado. Para executar o código em uma célula code clique na mesma e digite "shift + enter".Isto é assim porque o código na célula pode ter muitas linhas e o "enter" simples é reservado para dar uma nova linha no código.

As células de código tem sempre um prefixo In[d] onde d é um número sequencial. Isto simboliza "input", ou seja código que você alimenta no interpretador Python. Assim que o código executar, aparece abaixo a saida do interpretador numa célula texto markdown, prefixada com Out[d] 

No comments:

Post a Comment