Alura > Cursos de Dados > Cursos de Fundamentos de Dados > Conteúdos de Fundamentos de Dados > Primeiras aulas do curso Python para Dados: trabalhando com funções, estruturas de dados e exceções

Python para Dados: trabalhando com funções, estruturas de dados e exceções

Bibliotecas - Apresentação

Olá! Meu nome é Afonso Rios, sou instrutor de dados na Alura.

Sou um homem de pele morena, tenho olhos castanhos escuros, cabelos curtos e lisos, também castanhos escuros, e barba. Estou vestindo uma camiseta preta com alguns detalhes em verde. Ao fundo, há uma parede branca, com iluminação esverdeada.

Neste curso de introdução a data science, vamos aprender a utilizar a linguagem Python voltada à área de ciência de dados. Aqui, não aprenderemos como usar as bibliotecas mais usuais da ciência de dados, como Pandas e NumPy.

Nosso objetivo é estudar todos os conceitos até chegar ao ponto de entender um pouco mais essas bibliotecas, seus métodos e como são tratados os dados para realização de análises. Além disso, aprenderemos a:

Ao final do curso, você será capaz de resolver situações-problema, utilizando todo esse ferramental e construirá uma base sólida, que te auxiliará a utilizar a linguagem Python na área de data science.

Para que sua experiência seja ainda mais proveitosa, é ideal que você já saiba conceitos básicos da linguagem, como:

Vamos lá?!

Bibliotecas - Importando bibliotecas

Nota: Atualmente, ao executar o código plt.show(), pode aparecer um erro. Para corrigir, atualize a versão do Matplotlib, substituindo
!pip install matplotlib==3.6.2 por !pip install -U matplotlib. Em seguida reinicie a sessão e execute o código novamente.

Você foi contratado para auxiliar um time de ciência de dados a resolver alguns problemas para uma escola que atua do ensino médio ao ensino superior.

Para entender como ajudar na resolução de demandas que surgem a todo o momento, você precisará passar por um pequeno treinamento, guiando-se por uma lista de conteúdos, cada um deles aborda uma situação relacionada às demandas da escola.

O primeiro assunto são as bibliotecas do Python!

Bibliotecas do Python

As bibliotecas do Python são, basicamente, um conjunto de módulos e funções úteis para a pessoa usuária. Esses módulos e funções desempenham tarefas segundo as nossas necessidades, sem que seja necessário trazer todos os pacotes e dados para o projeto.

Como utilizar uma biblioteca Python?

Para conseguir utilizar uma biblioteca, precisamos instalá-la - caso ela não esteja no ambiente - atualizá-la ou importá-la no nosso projeto.

Instalação e importação de bibliotecas

Para instalar uma biblioteca ou atualizá-la, podemos utilizar o pip, um gerenciador de bibliotecas do Python.

Lembrando que, no Colab do curso, você encontrará não só instruções sobre a instalação das bibliotecas, mas também o código de todos os projetos, soluções e problemas que precisaremos resolver.

Pensando em um modelo real, poderíamos dizer que o trabalho do pip é semelhante ao de um bibliotecário. Enquanto o bibliotecário cataloga e organiza os documentos e livros em um acervo, o pip organiza as bibliotecas e pacotes dentro do Python.

Instalando a biblioteca matplotlib pelo pip

Vamos escrever pip install, sendo install palavra-chave para instalação. Em seguida, indicaremos qual biblioteca vamos instalar. Nós escolheremos a matplotlib, biblioteca usada para visualização de dados.

pip install matplotlib

Talvez apareçam marcações vermelhas abaixo do código, como se ele estivesse errado. O motivo disso acontecer é que o trabalho com pip envolve a camada do prompt de comando da nossa máquina virtual.

No nosso Colab do curso, para trabalharmos com essa máquina virtual, precisamos de uma palavra-chave bem pequena. Na verdade, se trata de um símbolo, a exclamação "!", que adicionaremos no início do código.

!pip install matplotlib

Essa exclamação indica que a célula de código não é comum, como as utilizadas para linguagem ou em operações, mas, sim, uma célula que usaremos no prompt de comando para instalar ou atualizar bibliotecas.

Vamos rodar o código!

!pip install matplotlib

A seguir, temos um trecho do retorno:

Looking in indexes: https://pypi.org/simple, https://us-python.pkg.dev/colab-wheels/public/simple/

Requirement already satisfied: matplotlib in /usr/local/lib/python3.9/dist-packages (3.5.3)

Requirement already satisfied: packaging>=20.0 in /usr/local/lib/python3.9/dist-packages (from matplotlib) (23.0)

Requirement already satisfied: pyparsing>=2.2.1 in /usr/local/lib/python3.9/dist-packages (from matplotlib) (3.0.9)

O retorno mostra alterações e atualizações em processo e o aviso "requirement already satisfied", indicando que o matplotlib já está instalado na versão básica do Colab. Caso contrário, a instalação seria concluída.

Também podemos instalar a biblioteca a partir de uma versão específica.

Por que utilizar a versão específica de uma biblioteca?

Vamos supor a seguinte situação: nós trabalhamos com algum método ou função no matplotlib em determinada versão, por exemplo, a "3.6.12". Na versão acima, essa função deixou de existir ou seus parâmetros mudaram. Neste caso, o código quebraria.

Quando utilizamos a instalação de uma versão específica, estamos assegurando ao usuário do nosso código que ele vai funcionar corretamente, porque fizemos testes neste tipo de versão.

Instalando uma versão específica do matplotlib

A instalação é bem simples. Vamos começar passando !pip install matplotlib. Para instalar a versão acima, adicionaremos o operador ==, que navegará no Python e escolherá a versão 3.6.2. Lembrando que não é necessário passar a versão entre aspas.

!pip install matplotlib==3.6.2

O pip precisa atualizar a versão, então busca essa versão no PyPI, repositório de bibliotecas, e a instá-la na nossa máquina. Vamos rodar o código.

Ele está carregando, instalando as bibliotecas, atualizando, desinstalando a versão anterior e, por fim, a instalação é concluída. Provavelmente aparecerá um warning (aviso) de que precisamos restaurar a seção para que as modificações sejam aplicadas ao projeto.

WARNING: The following packages were previously imported in this runtime: [matplotlib, mlp_toolkits]

You must restart the runtime in order to use newsly installed versions.

(Em tradução livre: Os seguintes pacotes foram importados anteriormente neste tempo de execução [matplotlib, mlp_toolkits] Você deve reiniciar o tempo de execução para usar novas versões instaladas)

Podemos acessar "Ambiente de execução", no topo da página, e escolher a opção "Reiniciar ambiente de execução" ou apertar "Restart Runtime" que aparece logo após a resposta do código para restartar/reiniciar o ambiente de execução.

Rodando novamente o código, poderemos conferir que agora todas as requisições foram satisfeitas. A seguir, você pode acompanhar um trecho do retorno:

Looking in indexes: https://pypi.org/simple, https://us-python.pkg.dev/colab-wheels/public/simple/

Requirement already satisfied: matplotlib==3.6.2 in /usr/local/lib/python3.9/dist-packages (3.6.2)

Requirement already satisfied: kiwisolver>=1.0.1 in /usr/local/lib/python3.9/dist-packages (from matplotlib==3.6.2) (1.4.4)

Requirement already satisfied: pyparsing>=2.2.1 in /usr/local/lib/python3.9/dist-packages (from matplotlib==3.6.2) (3.0.9)

Após o retorno, no Colab, você encontra o acesso à PYPI, repositório de bibliotecas do Python.

Instalamos a biblioteca e ela já está na nossa máquina. O próximo passo é importar a biblioteca, isto é, trazê-la para nosso código Python.

Importar a biblioteca

Para importar a biblioteca, usaremos import seguido do nome desta biblioteca, matplotlib.

Importando uma biblioteca sem alias

import matplotlib

Rodamos e apareceu um sinal de check em verde ao lado da célula, informando que a importação foi concluída. Na próxima célula, passaremos matplotlib.__version__.

Dunder methods: métodos mágicos ou dunder methods são parâmetros com dois underlines seguidos: __. Basicamente, trazem alguns métodos extraordinários, que podem ser aplicados em vários tipos de módulos, classes e objetos e respondem a um tipo específcio de tarefa.

É importante saber a versão de biblioteca estamos trabalhando, seja ela a matplotlib ou outra biblioteca, inclusive para conferir se precisamos atulizar ou não essa versão e entender os requisitos para trabalhar com o projeto.

Vamos rodar o código:

matplotlib.__version__

'3.6.2'

O retorno é "3.6.2", versão que escolhemos na instalação. Outra forma de importar um código, biblioteca ou pacote do Python é usando alias, um apelido. No seu dia a dia, provavelmente você não é chamado por seu nome inteiro. Assim como seu apelido, podemos dizer que o alias é uma forma carinhosa ou mais simples de se chamar uma biblioteca.

Nós trabalharemos com a biblioteca matplotlib.pyplot, um submódulo no Matplotlib, ou seja, um módulo dentro do módulo, responsável por trabalhar também com a visualização de dados.

Importando uma biblioteca com alias

import matplotlib.pyplot as plt

Estamos importando a biblioteca matplotlib.pyplot como (as) "plt". Ou seja, plt será o apelido do matplotlib.pyplot. Repetir matplotlib.pyplot todas as vezes em que for necessário executar um código é bastante cansativo.

A função do plt é reduzir a quantidade de caracteres que utilizaremos no nosso código. Agora, vamos passar plt.show(), sendo que o ponto indica o que vamos pegar de dentro do plt.

Nós temos uma biblioteca com várias funções, módulos, classes, objetos e precisamos escolher o que desejamos visualizar. Inclusive, ao passarmos o ponto, plt., visualizaremos várias opções.

Estamos utilizando .show(), um objeto que serve para mostrar na tela apenas a imagem produzida. Porém, não produzimos nada. Ao rodarmos plt.show(), não teremos um erro, mas nada será executado. Receberemos apenas uma confirmação de que o código foi executado de maneira correta: check em verde ao lado da célula.

plt.show()

Aprendemos a importar a biblioteca com e sem alias e também a instalá-la. No próximo vídeo, aprenderemos a utilizá-la!

Bibliotecas - Utilizando pacotes/bibliotecas

Aprendemos a instalar e importar bibliotecas no nosso projeto. Chegou a hora de entender como utilizar os pacotes de bibliotecas e os métodos de variáveis que estão nelas.

Lembrando que é importante sempre consultar a Documentação do Python, estudar e entender seus métodos para utilizá-los da melhor forma no projeto!

Utilizando pacotes/bibliotecas

No nosso primeiro exemplo, vamos testar a biblioteca Matplotlib, mais especificamente, a matplotlib.pyplot para encontrar a média de estudantes de uma classe.

Nós criaremos um pequeno gráfico de barras mostrando as métricas desses estudantes. Vamos lá?!

Começaremos fazendo algo que aprendemos anteriormente: importando a biblioteca Matplotlib com alias.

import matplotlib.pyplot as plt

Rodamos e realizamos a importação da biblioteca. A seguir, temos duas listas. Uma de estudantes e outra de notas.

estudantes = ["João", "Maria", "José"]
notas = [8.5, 9, 6.5]

Para criar um gráfico a partir desses dados, utilizaremos um método dentro do plt chamado bar(). Vamos escrever: plt.bar(). É como se disséssemos: do plt quero bar().

Quando passamos o mouse nos parênteses de bar(), visualizamos uma série de parâmetros que podem ser usados. Nós trabalharemos com dois: x, que se refere ao eixo x e height, a altura, que se refere ao eixo y.

Vamos passar o nome do parâmetro que utilizaremos e o valor que virá para ele:

O código ficará assim:

plt.bar(x = estudantes, height = notas)

Precisamos rodar a lista de estudantes e notas e o código plt.bar(). O retorno é um gráfico de três barras, com "João", "Maria" e "José" na base e as barras apontando suas respectivas notas: João com 8,5; Maria com 9,0; e José com 6,5.

Gráfico de barras azuis, sem título. O eixo y está graduado de 0 a 8 com intervalos de 2. O eixo x é composto por: João; Maria; e José. Para cada uma das pessoas, há uma barra que relaciona, no eixo y, o valor das notas: João com 8,5; Maria com 9,0; e José com 6,5.

Interessante como, com um código simples, conseguimos construir um gráfico! Agora, vamos para o segundo exemplo. Nele, usaremos a biblioteca random.

Biblioteca random

A biblioteca random é responsável por gerar números e sequências aleatórias. Quando queremos trabalhar com aleatoriedades nos nossos dados, é bastante usual utilizar a random.

No nosso exemplo, vamos selecionar aleatoriamente um(a) estudante para apresentar seu trabalho de ciências de dados, usando a biblioteca random.

Se quiser conhecer um pouco mais sobre a random e todos os seus métodos, basta acessar a documentação da biblioteca random

Inicialmente, vamos apenas aumentar a nossa lista de estudantes:

estudantes_2 = ["João", "Maria", "José", "Ana"]

Não se esqueça de rodar o código!

Até aqui, aprendemos a:

Agora aprenderemos a importar uma função específica de uma biblioteca.

Importando uma função específica de uma biblioteca

Para estruturar a nossa função, vamos considerar que: queremos, da random, uma função que faça uma escolha (choice). Isto é, da random quero choice.

from nome_biblioteca import metodo

Agora vamos preencher:

from random import choice

Com isso, selecionamos da biblioteca, a função choice, que fará a escolha de um(a) estudante.

Para compreender o que uma função, método, classe ou objeto fazem, podemos recorrer a uma built-in function (função embutida) chamada help(). Ela traz uma ajuda de como utilizar determinado tipo de funcionamento.

Se quiser conhecer melhor a função help(), você pode acessar a documentação

Estamos trabalhando com a função choice e vamos passar:

help(choice)

Help on method choice in module random:

choice(seq) method of random.Random instance Choose a random element from a non-empty sequence.

O retorno é uma pequena explicação sobre como utilizar a choice:

Vamos passar a função choice() para a variável estudante. Nos parênteses de choice(), passaremos estudantes_2, que é a nossa lista de estudantes.

Em seguida, colocaremos a escolha aleatória do choice() dentro da variável estudante.

estudante = choice(estudantes_2)
estudante

'Maria'

Rodamos o código e a estudante escolhida aleatoriamente pelo choice() foi a "Maria". Vamos testar de novo:

estudante = choice(estudantes_2)
estudante

'José'

Desta vez, o escolhido foi "José". Significa que o choice() está escolhendo aleatoriamente o(a) estudante que apresentará o trabalho de ciência de dados.

Bem legal! Conseguimos importar:

Na próxima aula, vamos começar a aprender como criar uma sequência de instruções para determinados comportamentos que queremos reproduzir em determinada parte do código ou mais a frente. Vamos falar sobre funções! Até a próxima!

Sobre o curso Python para Dados: trabalhando com funções, estruturas de dados e exceções

O curso Python para Dados: trabalhando com funções, estruturas de dados e exceções possui 150 minutos de vídeos, em um total de 52 atividades. Gostou? Conheça nossos outros cursos de Fundamentos de Dados em Dados, ou leia nossos artigos de Dados.

Matricule-se e comece a estudar com a gente hoje! Conheça outros tópicos abordados durante o curso:

Aprenda Fundamentos de Dados acessando integralmente esse e outros cursos, comece hoje!

Conheça os Planos para Empresas