// aula 03 · Python · Ecossistema
Uma biblioteca é um conjunto de código pronto que você pode importar e usar no seu programa, sem precisar escrever tudo do zero. É como usar uma caixa de ferramentas: você não fabrica o martelo, só usa. Em Python, as bibliotecas ficam no PyPI (Python Package Index) — o repositório oficial com mais de 500 mil pacotes.
Use o pip, o gerenciador de pacotes do Python. No terminal:
NumPy é a biblioteca fundamental para computação numérica em Python. Ela introduz o ndarray — um array multidimensional extremamente eficiente — e operações matemáticas que rodam em C por baixo dos panos, sendo dezenas de vezes mais rápidas que listas Python puras.
import numpy as np # Criar um array com 5 elementos notas = np.array([7.5, 8.0, 9.2, 6.8, 10.0]) # Operações em todos os elementos de uma vez print(notas.mean()) # → 8.3 (média) print(notas.max()) # → 10.0 (maior nota) print(notas * 1.1) # → aumenta todas em 10% # [8.25 8.8 10.12 7.48 11.0] # Filtrar quem tirou acima de 8 aprovados = notas[notas > 8.0] print(aprovados) # → [8. 9.2 10. ]
Pandas traz o DataFrame — uma estrutura de dados em tabela (linhas × colunas) parecida com uma planilha Excel, mas programável. É a ferramenta mais usada para limpar, transformar e explorar dados antes de qualquer análise.
import pandas as pd # Criar uma tabela de alunos df = pd.DataFrame({ 'nome': ['Ana', 'Bia', 'Carlos', 'Diego'], 'nota': [9.5, 7.2, 8.8, 6.1], 'turma': ['A', 'B', 'A', 'B'] }) # Filtrar alunos aprovados (nota ≥ 7) aprovados = df[df['nota'] >= 7.0] print(aprovados) # nome nota turma # 0 Ana 9.5 A # 1 Bia 7.2 B # 2 Carlos 8.8 A # Média por turma print(df.groupby('turma')['nota'].mean()) # turma A → 9.15 | turma B → 6.65
Matplotlib é a biblioteca de visualização mais antiga e completa do Python. Inspirada no MATLAB, ela dá controle total sobre cada elemento de um gráfico. É verbose, mas extremamente poderosa para gráficos científicos e publicações.
import matplotlib.pyplot as plt meses = ['Jan', 'Fev', 'Mar', 'Abr'] vendas = [120, 98, 145, 162] plt.plot(meses, vendas, marker='o', color='steelblue') plt.title('Vendas por mês') plt.xlabel('Mês') plt.ylabel('Unidades') plt.grid(alpha=0.3) plt.show() # abre a janela com o gráfico
Seaborn é construído em cima do Matplotlib e simplifica a criação de gráficos estatísticos elegantes. Integra nativamente com DataFrames do Pandas e gera gráficos com temas bonitos por padrão.
import seaborn as sns import pandas as pd df = pd.DataFrame({ 'turma': ['A','A','B','B','A','B'], 'nota': [8, 9, 6, 7, 10, 5] }) # Gráfico de caixa por turma — 1 linha! sns.boxplot(data=df, x='turma', y='nota') # Gráfico de barras com média automática sns.barplot(data=df, x='turma', y='nota')
scikit-learn é a biblioteca de machine learning mais usada do mundo para algoritmos clássicos. Oferece regressão, classificação, clustering, validação e pré-processamento com uma API consistente e intuitiva.
from sklearn.tree import DecisionTreeClassifier # Dados: [temperatura, umidade] → vai chover? 0=não, 1=sim X = [[30, 20], [25, 80], [20, 90], [35, 10]] y = [0, 1, 1, 0] modelo = DecisionTreeClassifier() modelo.fit(X, y) # treinar previsao = modelo.predict([[22, 85]]) print(previsao) # → [1] vai chover!
TensorFlow é o framework de deep learning do Google. O Keras é a interface de alto nível que facilita a criação de redes neurais. Juntos, permitem criar desde redes simples até modelos de visão computacional e NLP de última geração.
import tensorflow as tf # Rede neural com 3 camadas modelo = tf.keras.Sequential([ tf.keras.layers.Dense(64, activation='relu', input_shape=(10,)), tf.keras.layers.Dense(32, activation='relu'), tf.keras.layers.Dense(1, activation='sigmoid') ]) modelo.compile(optimizer='adam', loss='binary_crossentropy') # modelo.fit(X_train, y_train, epochs=10) print(modelo.summary()) # exibe a arquitetura
Requests abstrai toda a complexidade do protocolo HTTP. Com poucas linhas você faz chamadas GET, POST, passa headers, autenticação e trata respostas JSON. Uma das bibliotecas mais baixadas de toda a história do PyPI.
import requests resposta = requests.get('https://catfact.ninja/fact') if resposta.status_code == 200: dado = resposta.json() print(dado['fact']) # → "Cats sleep 13-14 hours a day." else: print('Erro na requisição')
Flask é um micro-framework web minimalista — você começa com o mínimo e adiciona apenas o que precisa. Perfeito para criar APIs, protótipos e aplicações web pequenas a médias. Muito usado para colocar modelos de ML em produção.
from flask import Flask, jsonify app = Flask(__name__) @app.route('/ola') def ola(): return jsonify({'mensagem': 'Olá, mundo!', 'status': 'ok'}) if __name__ == '__main__': app.run(debug=True) # Acesse http://localhost:5000/ola no navegador
Playwright controla navegadores reais (Chrome, Firefox, Safari) por código. É usado para testar aplicações web, fazer scraping de sites dinâmicos (com JavaScript) e automatizar tarefas repetitivas no navegador.
from playwright.sync_api import sync_playwright with sync_playwright() as pw: browser = pw.chromium.launch() page = browser.new_page() page.goto('https://python.org') page.screenshot(path='python.png') browser.close() # Salva a imagem python.png no disco
schedule é uma biblioteca minimalista para agendar funções em Python com uma sintaxe quase de linguagem natural. Ótima para rodar relatórios, enviar notificações ou fazer backups automaticamente.
import schedule, time def bom_dia(): print('Bom dia! Hora de começar!') def fazer_backup(): print('Backup realizado!') schedule.every().day.at("08:00").do(bom_dia) schedule.every().hour.do(fazer_backup) while True: schedule.run_pending() time.sleep(60)
✅ Já incluída no Python — não precisa de pip install
pathlib é a biblioteca moderna para trabalhar com arquivos e diretórios. Substitui o antigo os.path com uma interface orientada a objetos mais intuitiva e legível.
from pathlib import Path pasta = Path('meus_arquivos') pasta.mkdir(exist_ok=True) # criar pasta arquivo = pasta / 'notas.txt' # / concatena caminhos! arquivo.write_text('Nota: 9.5\n') print(arquivo.read_text()) # → Nota: 9.5 print(arquivo.suffix) # → .txt print(arquivo.stem) # → notas
Rich transforma o terminal em algo visualmente rico. Com ela você imprime texto colorido, tabelas formatadas, barras de progresso, logs com ícones e muito mais — tudo sem complicação.
from rich import print from rich.table import Table # Texto com formatação print("[bold green]✅ Sucesso![/bold green] Arquivo salvo.") print("[bold red]❌ Erro![/bold red] Verifique o arquivo.") # Tabela bonita no terminal tabela = Table(title="Alunos") tabela.add_column("Nome") tabela.add_column("Nota", style="cyan") tabela.add_row("Ana", "9.5") tabela.add_row("Bia", "7.2") print(tabela)