Notebooks Jupyter

Vamos usar primariamente os notebooks Jupyter neste livro como forma de escrever e compartilhar código e análises. De acordo com a equipe mantenedora do projeto Jupyter:

O notebook Jupyter é uma aplicação web de código aberto que permite criar e compartilhar código, equações, visualizações e texto narrativo. Usos incluem: limpeza e transformação de dados, simulação numérica, modelagem estatística, visualização de dados, aprendizado de máquina e muito mais.

Como você pode ver no exemplo abaixo, um notebook Jupyter permite alternar, no mesmo documento, partes de código e partes formatadas em texto (e mais que texto, como veremos) por meio de uma linguagem de marcação leve chamada de Markdown.

../_images/exemplo_notebook.png

Fig. 7 Exemplo de notebook Jupyter

O nome “Jupyter” é um anagrama de Julia, Python e (&) R (as três linguagens originais suportadas pelo projeto), além de ser uma homenagem a Galileu, que usava cadernos (notebooks) para documentar seus achados, particularmente das luas de Júpiter .

Veja também

Mais informações sobre o projeto e documentação podem ser encontradas no site oficial do projeto Jupyter. Apesar de ser originalmente pensado nas três linguagens originais (Julia, Python e R), hoje o projeto Jupyter dá suporte a diversas linguagens. O repositório oficial dá acesso a todas as versões disponíveis.

Originalmente pensado somente para o modelo de organização de trabalho em notebooks, o projeto Jupyter tem ido para uma direção que se assemelha a desenvolver uma IDE centrada nos notebooks - a próxima iteração do projeto, Jupyter lab. Atualmente recomendamos mais o uso do Jupyter lab que notebooks puros (e essa é a recomendação da equipe mantenedora do projeto).

De forma resumida, o notebook clássico oferece acesso aos notebooks e a poucas ferramentas de gestão do seu projeto de análise, enquanto o Jupyter lab, evoluiu para uma IDE centrada nos notebooks. O uso de um notebook, no entanto, é o mesmo em ambos. Ambos vêm instalados na distribuição Anaconda (ver menu principal).

Caso você não tenha instalado anteriormente, siga os passos seguintes. Para instalar o Jupyter lab:

pip install jupyterlab

Para instalar o notebook clássico:

pip install notebook

Veja também

Caso você prefira não trabalhar com linha de comando, você pode baixar o aplicativo Jupyter lab Desktop, acessível por interface gráfica.

Abrindo um notebook Jupyter

Há mais de uma forma de abrir um jupyter notebook:

  1. Entrando pelo Anaconda Navigator, clique no ícone Jupyter (ou Jupyterlab)

  2. Entrando direto no Jupyter ou Jupyter lab (pelo menu de programas ou no buscador do Windows)

  3. Entrando pelo prompt do Anaconda, cmd/PowerShell ou terminal, digite o comando jupyter notebook ou jupyter-lab

Caso você utilize algum IDE:

Veja também

  • Veja mais detalhes de como trabalhar com notebooks Jupyter no VSCode na página oficial.

  • Veja mais detalhes de como trabalhar com notebooks Jupyter no PyCharm na página oficial.

Definindo local de execução

Conforme você tenha diversos projetos de pesquisa, é importante organizá-los em locais separados. Para tanto, é melhor executar um notebook Jupyter direto na pasta desejada. O Jupyter vai iniciar na pasta de instalação por padrão, mas você pode querer mudar isso. Entrando pelo prompt do Anaconda, cmd/PowerShell ou terminal, vá até a localização desejada e de lá execute:

cd C:/pasta ...
jupyter-lab 

Alternativamente, você pode querer deixar uma pasta específica como padrão de inicialização. Siga os passos abaixo para mudar a pasta de início:

  1. Abra o prompt do Anaconda, cmd/PowerShell ou terminal e digite jupyter notebook --generate-config (cria um arquivo em C:\Users\username\.jupyter\jupyter_notebook_config.py - a localização pode ser diferente em sua máquina!).

  2. Vá até o arquivo e abra em um editor de texto.

  3. Procure a linha #c.NotebookApp.notebook_dir = ''

  4. Substitua pela pasta onde você quer iniciar o Jupyter c.NotebookApp.notebook_dir = '/caminho/pasta/' (certifique-se de usar barras normais (/) e não invertidas)

  5. Remova a cerquilha (#) do início da linha para que ela seja executada

Visão geral de um notebook

Caso você abra um notebook sem estar num IDE (VSCode, PyCharm, etc.), você verá que o notebook é um aplicativo renderizado no seu navegador de internet padrão. Perceba que, nesse caso, a janela do prompt do Anaconda, cmd/PowerShell ou terminal deve permanecer ativa até o fim da sua sessão. O que você vê no navegador é só a parte visual (na verdade, tudo está sendo rodado naquela janela de linha de comando) e, portanto, você não deve fechá-la antes de salvar e terminar sua sessão. Caso isso ocorra, a conexão é perdida.

Ao abrir seu primeiro notebook, você verá uma janela assim:

../_images/notebook_01.png

Fig. 8 Janela inicial de um notebook Jupyter

  • Para encerrar sua sessão, use o botão Quit (canto superior direito)

  • Para criar um novo notebook, selecione o botão New > Notebook Python 3 (canto superior direito)

  • As linhas representam os arquivos existentes na pasta de inicialização

  • Cada notebook novo aberto ocupa uma nova aba/janela do seu navegador.

Os notebooks têm a seguinte visão:

../_images/notebook_02b.png

Fig. 9 Exemplo de notebook Jupyter

  • Botão salvar 💾 - salva o seu notebook (1)

  • Botão + - cria uma nova célula (2)

  • Botão cortar (3)

  • Botão copiar (4)

  • Botão colar (5)

  • Botões para navegar pelas células (você também pode usar o teclado):

    • : navega para cima (6)

    • : navega para baixo (7)

  • Botão ▶️ - executa a célula (8):

    • se for código, executa o código

    • se for Markdown, renderiza

  • Botão ⏹️ - parar execução (9)

  • Botão - reiniciar o kernel (10)

  • Botão - reiniciar o kernel e executar desde o início (11)

  • Botão code - mudar de código para Markdown e vice-versa (12)

  • Botão ⌨️ - abrir o menu de opções de comandos (13)

Operando um notebook Jupyter

Um notebook Jupyter é, no fundo, uma coleção de células - que contêm código, texto, etc. Todo notebook começa com uma célula em branco:

../_images/cell_02.png

Fig. 10 Célula em branco (modo de edição)

A borda em verde indica que a célula está em modo de edição - isto é, você pode alterar o conteúdo. Toda célula nova criada vem por padrão em formato de código. Células de código começam com o texto In [ ]:, que indica que esta célula pode conter uma entrada (In = input) e o número da entrada ([ ] recebe o número).

Caso você queira mudar para Markdown (o formato de texto que usaremos), você primeiro precisa mudar para o modo comando. Este modo permite navegar pelas células de um notebook e alterar de um formato para outro (por exemplo de códgo para Markdown e vice-versa). Para mudar de um modo para outro aperte esc:

../_images/cell_01.png

Fig. 11 Célula em branco (modo de comando)

Em seguida, digite m para mudar para Markdown - perceba que células Markdown não contém In [ ]: no início da célula. Para mudar novamente para código, digite esc + y.

../_images/cell_03.png

Fig. 12 Célula em branco (Markdown)

Para ir para o modo de edição de uma célula, basta clicar Enter.

../_images/cell_04.png

Fig. 13 Célula em branco (Markdown), modo de edição.

Você pode também alternar entre os modos por meio do botão code (ver item acima). Em resumo:

  • esc: muda de edição para comando

    • esc + m: muda para Markdown

    • esc + y: muda para código

  • Enter: muda de comando para edição

Criando e apagando células

Além do botão + no menu, você tem dois atalhos importantes para criar novas células. Para criar uma célula acima da célula atual, digite a. Caso esteja em modo de edição (borda verde), mude para o modo comando com esc e em seguida digite a:

../_images/esca.png

Fig. 14 Criando uma célula acima com esc + a

Contudo, na maioria das vezes, criamos células abaixo, seguindo o fluxo do desenvolvimento. Para criar uma célula abaixo da célula atual, digite b. Caso esteja em modo de edição (borda verde), mude para o modo comando com esc e em seguida digite b:

../_images/escb.png

Fig. 15 Criando uma célula acima com esc + b

Para apagar uma célula, digite dd (de delete). Caso esteja em modo de edição (borda verde), mude para o modo comando com esc e em seguida digite dd.

Em resumo:

  • Para criar uma célula acima, use a (ou esc + a, caso esteja em edição)

  • Para criar uma célula abaixo, use b (ou esc + b, caso esteja em edição)

  • Para apagar uma célula, vá até ela e use dd (ou esc + dd, caso esteja em edição)

Executando células

Além do botão ▶️ no menu, há alguns atalhos importantes para executar células:

  • shift + enter: executa a célula atual, e seleciona a célula seguinte.

  • ctrl + enter: executa a célula atual

  • alt + enter: executa a célula atual, insere nova célula abaixo.