Olá Devs!
Hoje iremos conhecer o Google Colab, e entender como utiliza-lo em nossas tarefas de Análise e Visualização de Dados.
Vamos lá?
O que é o Google Colab?
O Google Colab é uma plataforma de computação em nuvem gratuita baseada no Jupyter Notebook. Ele permite que os usuários criem e compartilhem documentos que contenham código executável, equações, visualizações e texto explicativo. O Google Colab oferece suporte a várias linguagens de programação populares, incluindo Python, JavaScript e Swift.
Isto significa que podemos intercalar blocos de texto, imagens e código em um mesmo documento. Como um Cientista de Dados, você vai utilizar muito este recurso tanto nos momentos em que você está trabalhando os dados e construindo o modelo quanto naquele momento em que você precisa comunicar seus achados e resultados para outros cientistas e para o seu público alvo.
Como acessamos o Google Colab?
Para acessar o Google Colab, você precisa se conectar com uma conta do Google e acessar o site colab.research.google.com. Você verá então, a seguinte tela:
Como você pode ver, a primeira atividade que ele sugere é abrir exemplos ou, no meu caso, alguns arquivos mais recentes. O Colab é integrado com o Google Drive, então seus arquivos, que terão sempre a extensão .ipynb
estarão sempre salvos lá no seu Drive, em uma pasta específica.
Iniciando um novo notebook!
Vamos iniciar? Clique no link “new notebook”. Você deve ver sua tela assim:
Neste momento, vamos destacar três áreas da tela:
- Onde fica o nome do notebook. Você pode modificar quando quiser
- Sistema de arquivos do notebook. Quando iniciamos um novo notebook, temos um sistema de arquivos virtual, onde podemos subir arquivos que serão utilizados durante a execução do código. Esses arquivos são apagados quando o notebook não está ativo.
- Esta é uma célula. Um notebook é feito de um conjunto de células que são executadas sequencialmente. As células podem ser de dois tipos: células de código ou células de texto. A célula que estamos marcando é especificamente uma célula de código, pois tem o botão de execução bem a esquerda.
Células de Texto
As células de texto nos permitem escrever texto no formato Markdown, que facilita bastante a formatação. Se quiser aprender mais sobre Markdown, clique aqui. Veja alguns exemplos:
Células de Código
Células de código, como o próprio nome diz, servem para escrever código que será executado. Podemos usar algumas linguagens, sendo que a mais comum é Python. Cada célula, ao ser executada, pode imprimir o resultado de sua execução logo abaixo. Veja um exemplo abaixo:
import pandas as pd
import json
import requests
response = requests.get("https://dummyjson.com/products")
json.dump(json.loads(response.text)['products'], open('products.json','w'))
raw_data = open('products.json','r')
# .load("https://dummyjson.com/products")
df = pd.read_json(raw_data)
df
id | title | description | price | discountPercentage | rating | stock | brand | category | thumbnail | images | |
---|---|---|---|---|---|---|---|---|---|---|---|
0 | 1 | iPhone 9 | An apple mobile which is nothing like apple | 549 | 12.96 | 4.69 | 94 | Apple | smartphones | https://i.dummyjson.com/data/products/1/thumbn... | [https://i.dummyjson.com/data/products/1/1.jpg... |
1 | 2 | iPhone X | SIM-Free, Model A19211 6.5-inch Super Retina H... | 899 | 17.94 | 4.44 | 34 | Apple | smartphones | https://i.dummyjson.com/data/products/2/thumbn... | [https://i.dummyjson.com/data/products/2/1.jpg... |
2 | 3 | Samsung Universe 9 | Samsung's new variant which goes beyond Galaxy... | 1249 | 15.46 | 4.09 | 36 | Samsung | smartphones | https://i.dummyjson.com/data/products/3/thumbn... | [https://i.dummyjson.com/data/products/3/1.jpg] |
3 | 4 | OPPOF19 | OPPO F19 is officially announced on April 2021. | 280 | 17.91 | 4.30 | 123 | OPPO | smartphones | https://i.dummyjson.com/data/products/4/thumbn... | [https://i.dummyjson.com/data/products/4/1.jpg... |
4 | 5 | Huawei P30 | Huawei’s re-badged P30 Pro New Edition was off... | 499 | 10.58 | 4.09 | 32 | Huawei | smartphones | https://i.dummyjson.com/data/products/5/thumbn... | [https://i.dummyjson.com/data/products/5/1.jpg... |
5 | 6 | MacBook Pro | MacBook Pro 2021 with mini-LED display may lau... | 1749 | 11.02 | 4.57 | 83 | Apple | laptops | https://i.dummyjson.com/data/products/6/thumbn... | [https://i.dummyjson.com/data/products/6/1.png... |
6 | 7 | Samsung Galaxy Book | Samsung Galaxy Book S (2020) Laptop With Intel... | 1499 | 4.15 | 4.25 | 50 | Samsung | laptops | https://i.dummyjson.com/data/products/7/thumbn... | [https://i.dummyjson.com/data/products/7/1.jpg... |
7 | 8 | Microsoft Surface Laptop 4 | Style and speed. Stand out on HD video calls b... | 1499 | 10.23 | 4.43 | 68 | Microsoft Surface | laptops | https://i.dummyjson.com/data/products/8/thumbn... | [https://i.dummyjson.com/data/products/8/1.jpg... |
8 | 9 | Infinix INBOOK | Infinix Inbook X1 Ci3 10th 8GB 256GB 14 Win10 ... | 1099 | 11.83 | 4.54 | 96 | Infinix | laptops | https://i.dummyjson.com/data/products/9/thumbn... | [https://i.dummyjson.com/data/products/9/1.jpg... |
9 | 10 | HP Pavilion 15-DK1056WM | HP Pavilion 15-DK1056WM Gaming Laptop 10th Gen... | 1099 | 6.18 | 4.43 | 89 | HP Pavilion | laptops | https://i.dummyjson.com/data/products/10/thumb... | [https://i.dummyjson.com/data/products/10/1.jp... |
10 | 11 | perfume Oil | Mega Discount, Impression of Acqua Di Gio by G... | 13 | 8.40 | 4.26 | 65 | Impression of Acqua Di Gio | fragrances | https://i.dummyjson.com/data/products/11/thumb... | [https://i.dummyjson.com/data/products/11/1.jp... |
11 | 12 | Brown Perfume | Royal_Mirage Sport Brown Perfume for Men & Wom... | 40 | 15.66 | 4.00 | 52 | Royal_Mirage | fragrances | https://i.dummyjson.com/data/products/12/thumb... | [https://i.dummyjson.com/data/products/12/1.jp... |
12 | 13 | Fog Scent Xpressio Perfume | Product details of Best Fog Scent Xpressio Per... | 13 | 8.14 | 4.59 | 61 | Fog Scent Xpressio | fragrances | https://i.dummyjson.com/data/products/13/thumb... | [https://i.dummyjson.com/data/products/13/1.jp... |
13 | 14 | Non-Alcoholic Concentrated Perfume Oil | Original Al Munakh® by Mahal Al Musk | Our Imp... | 120 | 15.60 | 4.21 | 114 | Al Munakh | fragrances | https://i.dummyjson.com/data/products/14/thumb... | [https://i.dummyjson.com/data/products/14/1.jp... |
14 | 15 | Eau De Perfume Spray | Genuine Al-Rehab spray perfume from UAE/Saudi... | 30 | 10.99 | 4.70 | 105 | Lord - Al-Rehab | fragrances | https://i.dummyjson.com/data/products/15/thumb... | [https://i.dummyjson.com/data/products/15/1.jp... |
15 | 16 | Hyaluronic Acid Serum | L'Oréal Paris introduces Hyaluron Expert Repl... | 19 | 13.31 | 4.83 | 110 | L'Oreal Paris | skincare | https://i.dummyjson.com/data/products/16/thumb... | [https://i.dummyjson.com/data/products/16/1.pn... |
16 | 17 | Tree Oil 30ml | Tea tree oil contains a number of compounds, i... | 12 | 4.09 | 4.52 | 78 | Hemani Tea | skincare | https://i.dummyjson.com/data/products/17/thumb... | [https://i.dummyjson.com/data/products/17/1.jp... |
17 | 18 | Oil Free Moisturizer 100ml | Dermive Oil Free Moisturizer with SPF 20 is sp... | 40 | 13.10 | 4.56 | 88 | Dermive | skincare | https://i.dummyjson.com/data/products/18/thumb... | [https://i.dummyjson.com/data/products/18/1.jp... |
18 | 19 | Skin Beauty Serum. | Product name: rorec collagen hyaluronic acid w... | 46 | 10.68 | 4.42 | 54 | ROREC White Rice | skincare | https://i.dummyjson.com/data/products/19/thumb... | [https://i.dummyjson.com/data/products/19/1.jp... |
19 | 20 | Freckle Treatment Cream- 15gm | Fair & Clear is Pakistan's only pure Freckle c... | 70 | 16.99 | 4.06 | 140 | Fair & Clear | skincare | https://i.dummyjson.com/data/products/20/thumb... | [https://i.dummyjson.com/data/products/20/1.jp... |
20 | 21 | - Daal Masoor 500 grams | Fine quality Branded Product Keep in a cool an... | 20 | 4.81 | 4.44 | 133 | Saaf & Khaas | groceries | https://i.dummyjson.com/data/products/21/thumb... | [https://i.dummyjson.com/data/products/21/1.pn... |
21 | 22 | Elbow Macaroni - 400 gm | Product details of Bake Parlor Big Elbow Macar... | 14 | 15.58 | 4.57 | 146 | Bake Parlor Big | groceries | https://i.dummyjson.com/data/products/22/thumb... | [https://i.dummyjson.com/data/products/22/1.jp... |
22 | 23 | Orange Essence Food Flavou | Specifications of Orange Essence Food Flavour ... | 14 | 8.04 | 4.85 | 26 | Baking Food Items | groceries | https://i.dummyjson.com/data/products/23/thumb... | [https://i.dummyjson.com/data/products/23/1.jp... |
23 | 24 | cereals muesli fruit nuts | original fauji cereal muesli 250gm box pack or... | 46 | 16.80 | 4.94 | 113 | fauji | groceries | https://i.dummyjson.com/data/products/24/thumb... | [https://i.dummyjson.com/data/products/24/1.jp... |
24 | 25 | Gulab Powder 50 Gram | Dry Rose Flower Powder Gulab Powder 50 Gram • ... | 70 | 13.58 | 4.87 | 47 | Dry Rose | groceries | https://i.dummyjson.com/data/products/25/thumb... | [https://i.dummyjson.com/data/products/25/1.pn... |
25 | 26 | Plant Hanger For Home | Boho Decor Plant Hanger For Home Wall Decorati... | 41 | 17.86 | 4.08 | 131 | Boho Decor | home-decoration | https://i.dummyjson.com/data/products/26/thumb... | [https://i.dummyjson.com/data/products/26/1.jp... |
26 | 27 | Flying Wooden Bird | Package Include 6 Birds with Adhesive Tape Sha... | 51 | 15.58 | 4.41 | 17 | Flying Wooden | home-decoration | https://i.dummyjson.com/data/products/27/thumb... | [https://i.dummyjson.com/data/products/27/1.jp... |
27 | 28 | 3D Embellishment Art Lamp | 3D led lamp sticker Wall sticker 3d wall art l... | 20 | 16.49 | 4.82 | 54 | LED Lights | home-decoration | https://i.dummyjson.com/data/products/28/thumb... | [https://i.dummyjson.com/data/products/28/1.jp... |
28 | 29 | Handcraft Chinese style | Handcraft Chinese style art luxury palace hote... | 60 | 15.34 | 4.44 | 7 | luxury palace | home-decoration | https://i.dummyjson.com/data/products/29/thumb... | [https://i.dummyjson.com/data/products/29/1.jp... |
29 | 30 | Key Holder | Attractive DesignMetallic materialFour key hoo... | 30 | 2.92 | 4.92 | 54 | Golden | home-decoration | https://i.dummyjson.com/data/products/30/thumb... | [https://i.dummyjson.com/data/products/30/1.jp... |
Esta célula, se executada, irá carregar dados de um site, salvar um arquivo e carrega-lo em um DataFrame que depois será impresso na área de resultados.
Utilizando um notebook
Os exemplos acima são bons para mostrar cada parte separadamente, mas vamos a um exemplo que irá ilustrar a utilização típica destes blocos.
Exemplo
Digamos que você precisa entregar um relatório para o seu chefe sobre quais são os primeiros 1000 números primos. Ele também solicita que você explique o que são números primos e como descobrir se um número é primo ou não.
Em um cenário tradicional de programação, provavelmente se faria a entrega de pelo menos dois arquivos: um documento do word, por exemplo, com a parte descritiva e um arquivo de código-fonte com o código. Como o arquivo de código-fonte não guarda o resultado da execução, é muito provável que este resultado fosse adicionado ao documento do word, ou quem sabe, disponibilizado em um terceiro arquivo.
Dá um certo trabalho preparar tudo… Além precisar de um computador com Word e com um editor de código-fonte para fazer todo o relatório. Mas com o Google Colab, você pode fazer tudo em um único lugar: um notebook pode ser editado de qualquer lugar, através do browser!
Veja o resultado abaixo:
É bem interessante, não é mesmo? Tudo em um único documento, que eu posso compartilhar com outras pessoas, sem nenhuma complicação. E o melhor, quem abre este notebook, pode executar as partes que são código, quando bem quiserem, sem depender de você para atualizar os resultados.
Finalizando
Espero que você tenha gostado de aprender um pouco sobre o ambiente de desenvolvimento que iremos utilizar neste curso. Ao longo do curso, utilizaremos recursos mais avançados, então não perca a oportunidade de aprender mais sobre o Google Colab com estes links abaixo:
Note
Os artigos citado acima e o conteúdo apresentado neste artigo não são de maneira nenhuma uma revisão extensiva do Google Colab, apresentamos apenas o necessário para você andar com seus próprios pés e no seu ritmo!
Um abraço, e até a próxima!
Walter.
Top comments (0)