Introdução
Curso de NumPy
Do primeiro array à rede neural, em três níveis, com projetos integradores e um arquivo executável por capítulo.
Para quem é este material
O NumPy é a base de quase tudo o que se faz com dados em Python: o pandas, o matplotlib, o scikit-learn, o PyTorch e o JAX falam a língua dos arrays. Eu organizei estas notas em seis partes, da instalação até uma rede neural escrita só com NumPy, e cada ideia aparece primeiro como intuição, depois como código que você pode executar.
| Parte | Para quem | O que você sabe fazer no final |
|---|---|---|
| Ambiente | Quem nunca usou NumPy | Instalar, importar e entender por que o array é mais rápido que a lista |
| Básico | Quem está começando com dados | Criar, indexar, remodelar e resumir arrays, e pensar em vetores em vez de laços |
| Intermediário | Quem já manipula arrays e quer ir além | Juntar, ordenar, tratar dados ausentes, usar álgebra linear e ler e gravar arquivos |
| Avançado | Quem escreve código numérico para produção | Entender memória, einsum, desempenho, aleatoriedade reproduzível e testes numéricos |
| Ecossistema | Quem vai usar NumPy com outras bibliotecas | Passar dados entre NumPy, pandas, matplotlib e scikit-learn sem perder o controle |
| Projetos | Quem quer provar que aprendeu | Entregar três projetos completos, com testes, um por nível |
Se você nunca programou em Python, faça antes o curso curso de Python, ao menos até o capítulo 25. Aqui eu assumo que você sabe o que é uma lista, uma função e um import.
Como cada capítulo funciona
Todo capítulo segue o mesmo desenho: uma explicação curta, um trecho de código e a saída real dele. Cada bloco mostra, no topo, o arquivo e as linhas do repositório onde ele está.
- A saída é real. Eu executei cada capítulo e copiei o que o Python imprimiu. Isso vale para o NumPy 2.x, a versão que o curso assume. Em versões 1.x algumas representações mudam, como a forma de imprimir escalares.
- Os exercícios têm solução. Tente primeiro. A solução fica recolhida e termina com
assert, então você descobre sozinho se acertou. - O que depende da sua máquina está marcado. Tempos de execução variam muito entre computadores, então eu mostro comparações (qual foi mais rápido) em vez de números absolutos.
Como rodar o código
O repositório tem uma pasta por parte e um arquivo por capítulo, com o nome capNN_assunto.py.
curso-numpy/
README.md
pyproject.toml
docs/
numpy.html
ambiente/
básico/
intermediario/
avancado/
ecossistema/
projetos/
estudantes/
imagens/
rede_neural/
exemplos/
Cada arquivo roda sozinho, a partir da raiz do repositório. Com o uv, sem instalar nada antes, o NumPy vem junto:
uv run básico/cap05_criando_arrays.py
Os capítulos da parte Ecossistema usam mais bibliotecas, que o grupo ecossistema instala de uma vez:
uv sync --group ecossistema
Qual versão este curso assume
O curso assume Python 3.12 ou superior e NumPy 2.x. Os exemplos foram executados com o NumPy 2.4. O capítulo 37 lista o que mudou da série 1.x para a 2.x, porque muito material na internet ainda usa nomes antigos.
Uma regra que eu repito neste curso
Quando você escrever um for sobre os elementos de um array, pare e pergunte: existe uma forma vetorizada? Quase sempre existe, e ela é mais curta e muito mais rápida. Boa parte do que você vai aprender aqui são as ferramentas para responder "sim, existe, e é esta".