Introdução ao JupyterLab

Visão Geral

Perguntas
  • Como eu posso rodar programas Python?

Objetivos
  • Ativar o servidor do JupyterLab.

  • Criar um novo script Python.

  • Criar um Jupyter notebook.

  • Desligar o servidor JupyterLab.

  • Entender a diferença entre um script Python e um Jupyter notebook.

  • Criar células Markdown em um notebook.

  • Criar e executar células Python em um notebook.

Existem várias vantagens de se usar o Jupyter:

Cada notebook contém uma ou mais células que contém códigos, texto, ou imagens.

Introdução ao JupyterLab

JupyterLab é uma aplicação web do Projeto Jupyter que permite trabalhar com documentos e atividades como Jupyter Notebooks, editores de texto, terminais, e até componentes personalizados de uma forma flexível e integrada. O JupyterLab requer um navegador atualizado (idealmente uma versão do Chrome, Safari, ou Firefox); Internet Explorer da versão 9 e anteriores não são suportados.

O JupyterLab é incluído na distribuição Anaconda do Python.

Apesar do JupyterLab ser uma aplicação web, ele roda localmente em sua máquina e não requer uma conexão a internet.

JupyterLab? E Jupyter Notebooks?

JupyterLab é o próximo estágio na evolução do Jupyter notebook. Se você tem experiência prévia com notebooks Jupyter, então você vai ter uma boa ideia do que esperar do JupyterLab.

Iniciando o JupyterLab

Você pode iniciar o servidor JupyterLab através da linha de comando ou através de uma aplicação chamada Anaconda Navigator. O Anaconda Navigator é incluído na distribuição Anaconda do Python.

Windows - Linha de Comando

Para ativar o servidor JupyterLab você vai precisar acessar o Anaconda Prompt.

Aperte Windows-Key e pesquisa por Anaconda Prompt, clique no resultado e aperte Enter.

Depois de ter acessado o Anaconda Prompt, digite o seguinte comando:

$ jupyter lab

Anaconda Navigator

Para ativar o servidor Jupyter do Anaconda Navigator, primeiro, abra o Anaconda Navigator (clique para instruções detalhadas). Você pode pesquisar pelo Anaconda Navigator pela função pesquisar do Windows (Windows-Key) ou pelo Spotlight do MacOS. Depois de ter ativado o Anaconda Navigator, procure pelo JupyterLab e clique em Launch.

Anaconda Navigator landing page

Uma tab assim deve abrir no seu navegador:

JupyterLab landing page

A interface JupyterLab

A interface JupyterLab consiste de uma barra de menu, uma barra lateral colapsável, e a área de trabalho principal que contém documentos e atividades.

Barra de Menu

A Barra de Menu no topo do JupyterLab tem os menus top-level que expõe as diferentes ações disponíveis no JupyterLab junto dos seus atalhos no teclado. Os seguintes menus são incluídos por padrão.

Kernels

A documentação do JupyterLab define kernels como “processos separados iniciados pelo servidor que roda o seu código em diferentes linguagens de programação e ambientes.” Quando abrimos um Jupyter Notebook, abrimos um kernel - um processo - que vai rodar o código. Nessa aula, vamos usar o kernel IPython do Jupyter, que permite rodar código Python 3 interativamente.

Usar outros kernels Jupyter para outras linguagens de programação nos permitiria escrever e executar código de outras linguagens de programação na mesma interface do JupyterLab, como R, Java, Julia, Ruby, JavaScript, Fortran, etc.

Abaixo um screenshot da Barra de Menu:

JupyterLab Menu Bar

Barra Lateral

A barra lateral que fica à esquerda contém um número de abas comumente usadas, como um navegador de arquivos (que mostra o conteúdo do diretório aonde o servidor JupyterLab foi iniciado), uma lista dos kernels e terminais em execução, a paleta de comandos, e uma lista de abas abertas na área de trabalho principal.

JupyterLab Left Side Bar

A barra lateral pode ser colapsada ou expandida selecionando “Show Left Sidebar” no Menu View ou clicando na aba ativa da barra lateral.

Área de Trabalho Principal

A área de trabalho principal do JupyterLab permite que você arranje documentos (notebooks, arquivos de texto, etc.) e outras atividades (terminais, consoles de código, etc.) em paineis de abas que podem ter o tamanho ajustado ou ser subdivididas. Abaixo um screenshot da barra de menu.

JupyterLab Main Work Area

Arraste um tab do centro do painel de abas para mover a aba para o painel. Subdivida um painel de abas arrastando a aba para a esquerda, direita, topo, ou base do painel. A área de trabalho tem uma única atividade no momento. A aba para a atividade corrente é marcada como uma borda colorida no topo (azul por padrão).

Criando um script Python

Criando um Notebook Jupyter

Para criar um novo notebook, clique no ícone do Python 3 embaixo do cabeçalho Notebook na aba Launcher na área de trabalho principal. Você também pode criar um novo notebook ao selecionar New -> Notebook do menu File na Barra de Menu.

Notas adicionais sobre notebooks Jupyter:

Abaixo está um screenshot de um Jupyter Notebook rodando dentro do JupyterLab. Se você está interessado em mais detalhes, veja a documentação oficial dos notebooks

Example Jupyter Notebook

Como É Armazenado

  • O arquivo do notebook é armazenado em um formato chamado JSON.
  • Assim como a página web, o que é salvo é diferente do que vemos no navegador.
  • Esse formato permite que o Jupyter possa misturar código, texto, e imagens, tudo em um único arquivo.

Arranjando Documentos em Paineis de Abas

Na área de trabalho principal do JupyterLab você pode arranjar documentos em paineis de abas. Aqui está um exemplo da documentação oficial.

Multi-panel JupyterLab

Primeiro, crie um arquivo de texto, console Python, e janela do terminal e os arranje em três paineis diferentes na área de trabalho principal. Em seguida, crie um notebook, uma janela do terminal, e um arquivo de texto e os arranje em três painéis na área de trabalho principal. Por último, crie sua própria combinação de paineis e abas. Que combinação de paineis e abas você acha que será a mais útil para o seu workflow?

Solução

Depois de criar as abas necessárias, você pode arrastar uma delas no centro de um painel para mover a aba para o painel; em seguida você pode subdividir um painel de abas ao arrastar a aba para a esquerda, direita, topo, ou base do painel.

Código vs. Texto

O Jupyter mistura código e texto em diferentes tipos de blocos, chamados células. Nós frequentemente usamos o termo “código” para se referir ao “código fonte do software escrito em uma linguagem como Python”. Uma “célula de código” em um notebook é uma célula que contém software; a “célula de texto” é uma que contém prosa escrita para seres humanos.

Modos de Comando e de Edição

Comando vs. Edição

O Jupyter Notebook atual você está no modo Comando ou Edição? Troque entre os modos. Use os atalhos para criar uma nova célula. Use os atalhos para deletar uma célula. Use os atalhos para desfazer a última operação que você fez.

Solução

O modo de Comando tem uma borda cinza e o de Edição tem uma borda azul. Use Esc e Enter para alternar entre os modos. Você precisa estar no modo de Comando (Aperte Esc se a sua célula estiver azul). Aperte b ou a. Você precisa estar no modo de Comando (Aperte Esc se a sua célula estiver azul). Aperte x. Você precisa estar no modo de Comando (Aperte Esc se a sua célula estiver azul). Aperte z.

Use o teclado e o mouse para alternar entre as células.

O Notebook vai formatar o Markdown para deixar tudo bonito

Markdown faz quase tudo que HTML faz

*   Use asteriscos
*   para criar
*   listas bullet.
  • Use asteriscos
  • para criar
  • listas bullet.
1.  Use números
1.  para criar
1.  listas numeradas.
  1. Use números
  2. para criar
  3. listas numeradas.
*  Você aninhar itens
	*  Para criar sublistas 
	*  de mesmo tipo
*  Ou sublistas
	1. De tipos
	1. diferentes
  • Você aninhar itens
    • Para criar sublistas
    • de mesmo tipo
  • Ou sublistas
    1. De tipos
    2. diferentes
# Cabeçalho Nível 1

Cabeçalho Nível 1

## Cabeçalho Nível 2 (etc.)

Cabeçalho Nível 2 (etc.)

Novas linhas
não importam.

Mas linhas em branco
criam novos parágrafos.

Novas linhas não importam.

Mas linhas em branco criam novos parágrafos.

[Crie links](https://thexlab.com.br/) com `[...](...)`.
Ou use [links com nome][XLab].

[XLab]: https://thexlab.com.br/

Crie links com [...](...). Ou use links com nome.

Crie listas em Markdown

Crie uma lista aninhada em uma célula de Markdown em um notebook que pareça com isso:

  1. Planejar projeto.
  2. Fazer o trabalho.
    • Coletar os dados.
    • Analisar.
    • Gerar figuras.
  3. Escrever relatório.
  4. Submeter.

Solução

Esse desafio integra uma lista numerada e uma lista bullet. Note que a lista bullet é indentada com 2 espaços para que esteja alinhada com os itens da lista numerada.

1.  Planejar projeto.
2.  Fazer o trabalho.
    *   Coletar os dados.
    *   Analisar.
    *   Gerar figuras.
3.  Escrever relatório.
4.  Submeter.

Mais Matemática

O que aparece quando uma célula Python de um notebook que contém várias operações é executada? Por exemplo, o que acontece quando essa célula é executada?

7 * 3
2 + 1

Solução

O Python retorna a saída da última operação.

3

Mude uma Célula Existente de Código para Markdown

O que acontece se você escreve um pouco de Python em uma célula de código e depois você troca para uma célula Markdown? Por exemplo, coloque o seguinte em uma célula de código:

x = 6 * 7 + 12
print(x)

Execute com Shift+Enter para ter certeza que funciona como uma célula de código. Agora volte para célula e use Esc depois M para mudar a célula para Markdown e “execute” como Shift+Enter. O que aconteceu e como isso pode ser útil?

Solução

O código Python é tratado como texto Markdown. As linhas aparecem como se fossem parte de um parágrafo contíguo. Isso pode ser útil para temporariamente ligar e desligar células em notebooks que são usados para múltiplos propósitos.

x = 6 * 7 + 12 print(x)

Equações

Markdown Standard (como o que estamos usando para as notas) não vão renderizar equações, mas o Notebook vai. Cria uma nova célula Markdown e escreva o seguinte:

$\sum_{i=1}^{N} 2^{-i} \approx 1$

(Talvez seja mais fácil copiar e colar.) O que isso mostra? O que você acha que o underline, _, acento circumflexo, ^, e cifrão, $, fazem?

Solução

O Notebook mostra a equação como ela seria renderizada na sintaxe de LaTeX. O cifrão, $, é usado para dizer ao Markdown que o texto ali dentro é uma equação LaTeX. No LaTeX, o underline, _, é usado para subscript e o circumflexo, ^, é usado para superscript. Um par de chaves, { e }, é usado para agrupar texto para que a declaração i=1 se torne subscript e N se torne superscript. Similarmente, -i dentro de chaves é utilizado para fazer a declaração toda um superscript para 2. \sum e \approx são comandos LaTeX para os símbolos de “somatório” e “aproximadamente”.

Fechando o JupyterLab

$ jupyter lab

Fechando o JupyterLab

Pratique fechar e reiniciar o JupyterLab.

Pontos-chave

  • Scripts Python são arquivos de texto plano.

  • Usar o Jupyter Notebook para escrever e executar código Python.

  • O Notebook tem modos de comando e edição.

  • Use o teclado e o mouse para selecionar e editar células.

  • O Notebook vai formatar o Markdown para deixar tudo bonito.

  • Markdown faz quase tudo que HTML faz.