O Jupyter Notebook é um ambiente computacional web para criação de documentos na plataforma Jupyter. Um documento Jupyter Notebook é estruturado formato JSON, contendo uma lista ordenada de células de entrada / saída que podem conter código, texto (usando Markdown), matemática, gráficos e texto enriquecido, geralmente terminando com a extensão “.ipynb”.
Instalação
Ele pode ser instalado através do repositório python usando o comando “pip3 install jupyter” ou através do repositório conda usando o comando “conda install -c conda-forge jupyterlab”. Para sua execução localmente, primeiro execute o seguinte comando no terminal:
jupyter notebook # ou jupyter-notebook
Será aberto o browser padrão (ou uma nova aba, se já estiver em execução) com o link aberto na árvore de arquivos do diretório onde foi aberto. O link aparece no log impresso na tela do terminal, podendo ser copiado e colado em um browser para ser trabalhado. Veja esse exemplo:
To access the notebook, open this file in a browser: file:///run/user/1000/jupyter/nbserver-NUMERO-open.html Or copy and paste one of these URLs: http://localhost:8888/?token=NUMERO_DO_TOKEN
Caso esteja trabalhando remotamente, deverá ser incluído o parâmetro “–no-browser” para não abrir o browser do servidor. Caso queira especificar uma porta diferente da padrão (que é 8888), use o seguinte comando:
jupyter notebook --no-browser --port=8891
Antes de copiar o link que aparece na tela para um browser no computador local, você deverá criar um túnel entre sua máquina e o servidor, conforme o exemplo a seguir:
ssh -N -f -L localhost:8888:localhost:8888 user@hostname
Caso precise matar o túnel existente, execute os seguintes comandos:
ps -aux | grep ssh kill NUMERO_DO_PROCESSO
Na janela inicial, será exibida uma lista dos arquivos e diretórios presentes no local onde foi executado o comando do Jupyter. Você pode editar qualquer arquivo ASCII ou criar um novo.
Criar novo arquivo
Clicando em “New”, você pode criar um novo script python, um arquivo de texto simples, um novo diretório ou mesmo um novo terminal.
Com um novo arquivo python, existe existe um menu cortina de onde é possível escolher o tipo de célula, onde os principais são: “markdown” (para descrições textuais) e “code” (para códigos). Com o “markdown“, é possível inserir textos explicativos. Usando o tipo de célula “code“, você pode inserir linhas de código e executar bloco por bloco ou o documento todo – a saída será impressa logo após o bloco. Para ver o resultado, clique no botão para executar o código ou tecle SHIFT+ENTER; para voltar a editar esse bloco, dê dois cliques rápidos nele.
O documento gerado pode ser exportado como um script python (.py) em “File -> Download as -> .py” (ou em outros vários formatos interessantes, desde HTML até PDF). Tudo o que não for código, será incluído como comentário.
Para finalizar o programa, feche todas as abas abertas e dê CTRL+C no terminal (e confirme com y) para encerrar o processo.
Mais informações podem ser encontradas no post Digital Ocean – How To Set Up a Jupyter Notebook with Python 3 on Debian 9.
Abrindo um arquivo
Estando na janela com os arquivos e diretórios, dê um clique duplo no arquivo “.ipynb” que deseja trabalhar. Selecionando uma célula e clicando em “run” (ou teclando Shift+Enter), serão executadas as instruções nele presentes. Se ocorrer algum erro, uma mensagem será impressa logo abaixo; se exigir uma interação do usuário, a mensagem e o campo para receber a entrada aparecerá também abaixo.
Ao lado de cada célula existe a palavra “In” (de “Input”) seguida por um número entre colchetes. A cada vez que uma célula for executada, esse número aumenta. Dentre suas funcionalidades, isso serve para indicar quantas vezes as células foram executadas e a ordem que o mesmo foi feito. Um asterisco na célula Jupyter significa que a célula ainda está aguardando a execução; um círculo claro significa que está ocioso.
Fechando um arquivo
Para fechar um arquivo, vá em “File -> Close and halt”. Para fechar o Jupyter notebook, clique em “Quit” e depois feche a aba, liberando assim o respectivo terminal.
Executar arquivos de scripts
Você pode executar scripts escritos em arquivos separados dentro no Jupyter, mesmo recebendo argumentos. Existem basicamente duas formas, usando células “code”:
%run 'path/filename.py' args !python path/filename.py args
Usando “run”, os gráfico plotados com “show” também aparecem no jupyter.
Algumas dicas
No markdown, é possível até incluir equações usando LaTeX, colocando-a entre cifrões ou cifrões duplos (para centralizar a equação). Ao iniciar um parágrafo, se começar com um hashtag, será um título; aumentando-se o número de hashtags, cresce também o nível do título (ou seja, diminui a fonte). Para enfatizar (deixar em itálico), coloque o trecho entre asteriscos; para negrito, use dois asteriscos no início e no fim.
Para incluir uma imagem de um arquivo, existem duas formas basicamente:
– Em markdown:
![title](full_path)
Obs: o caminho completo é só a partir da pasta onde está o arquivo do jupyter notebook. Para editar o estilo (como o tamanho), talvez seja mais interessante inserir o código como imagem, conforme o exemplo a seguir:
<figure> <img src="helpers/arrow_head.png" alt="Legenda" style="width: 50%;"/> <figcaption style="text-align: center;font-style: italic">Fig. 1 - Legenda</figcaption> </figure>
– Em code:
from IPython.display import Image img = Image(full_path) display(img)
Obs: o “display” só é necessário se o “Image” estiver dentro de um loop ou método que é chamado no documento do Jupyter Notebook.
Existem botões para rodar a célula selecionada, interromper a rodada, reiniciar o kernel e rodar todo o notebook restartando o kernel. Reiniciar o kernel é importante para recarregar módulos externos que são atualizados fora do notebook. Já para atualizar figuras em markdown, aí precisa atualizar a página porque o browser guarda a imagem em cache.
Incorporar um notebook a um post do WordPress
Ao terminar um notebook, você pode exportá-lo com um arquivo HTML e fazer seu upload para o servidor do site. Ele pode ser inserido em um post como um “iframe”, sendo que alguns plugins, como o auto iframe, facilitam o trabalho. É gerada um “snippet”, onde o parâmetro “link” contém o endereço (de mesmo domínio) do arquivo a ser incorporado. Por padrão, deve se ajustar automaticamente ao espaço destinado ao texto do post, mas você pode aumentar a altura (parâmetro “height”) para o campo todo esticar e exibir todo o conteúdo do notebook.
One comment