Python NumPy na prática: o código e os comandos que realmente importam
Python NumPy: o essencial em um artigo — código real, diagramas e etapas concretas, extraídos de um curso de 35 lições.
Sem teoria interminável aqui: abra o terminal e pratique. Aqui está o essencial de Python NumPy, extraído diretamente de um curso completo de 35 lições — com código real que você pode copiar e colar agora.
- Introdução e Instalação
- Criação e inspeção de arrays
- Indexação, slicing e fancy indexing
- Operações vetorizadas
- Broadcasting
Criar arrays
Objetivos pedagógicos
Por que nem sempre usar np.array()?
Poderíamos sempre escrever np.array([0,0,0,0,0,0,0,0,0,0]). Mas imagine agora que você precisa de um array com 1 000 000 de zeros: impossível digitar manualmente.
Felizmente, o NumPy oferece fábricas especializadas para esses casos recorrentes. Elas são mais rápidas, mais legíveis e mais seguras que um loop em Python.
np.zeros: uma tabela de zeros
A ferramenta nº 1 para inicializar um array. Passamos como argumento o shape desejado:
import numpy as np # Vetor de 5 zeros a = np.zeros(5) print(a) # [0. 0. 0. 0. 0.] # Matriz 3 x 4 de zeros b = np.zeros((3, 4)) print(b) # [[0. 0. 0. 0.] # [0. 0. 0. 0.] # [0. 0. 0. 0.]] # Cubo 2 x 3 x 4 (um tensor 3D!) c = np.zeros((2, 3, 4)) print(c.shape) # (2, 3, 4)
np.ones: uma tabela de uns
Idêntico a zeros, mas preenchido com 1. Muito útil como máscara ou como ponto de partida para matrizes de pesos.
import numpy as np # Vetor de pesos inicializados em 1 poids = np.ones(10) print(poids) # [1. 1. 1. 1. 1. 1. 1. 1. 1. 1.] # Matriz quadrada 3 x 3 de uns M = np.ones((3, 3), dtype=int) print(M) # [[1 1 1] # [1 1 1] # [1 1 1]]
Note o parâmetro dtype=int: por padrão, zeros e ones produzem float64. Se quiser inteiros, solicite explicitamente.
np.full: preencher com qualquer valor
Quando quiser preencher com um valor diferente de 0 ou 1, use np.full(shape, valor):
import numpy as np # Matriz 2x3 preenchida com 7 sept = np.full((2, 3), 7) print(sept) # [[7 7 7] # [7 7 7]] # Tabela de NaN (valor ausente) nan_arr = np.full(5, np.nan) print(nan_arr) # [nan nan nan nan nan]
Caso prático frequente: inicializar uma tabela de resultados com NaN e depois preencher célula por célula durante um cálculo.
np.arange: a versão « range » do NumPy
np.arange(start, stop, step) é o equivalente NumPy da função range do Python, mas retorna um ndarray:
import numpy as np # 0, 1, 2, ..., 9 (stop é excluído) a = np.arange(10) print(a) # [0 1 2 3 4 5 6 7 8 9] # De 5 a 20 (excluído), passo de 2 b = np.arange(5, 20, 2) print(b) # [ 5 7 9 11 13 15 17 19] # Com passo flutuante: possível, mas evite c = np.arange(0, 1, 0.1) print(c) # [0. 0.1 0.2 ... 0.9] (mas cuidado, ver warning)
np.linspace: N pontos regularmente espaçados
np.linspace(start, stop, num) retorna num pontos regularmente espaçados entre start e stop, incluindo ambos os limites:
import numpy as np # 11 pontos de 0 a 1 inclusos a = np.linspace(0, 1, 11) print(a) # [0. 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1. ] # 5 pontos entre -pi e +pi (ideal para plotar sin/cos) x = np.linspace(-np.pi, np.pi, 5) print(x) # [-3.14 -1.57 0. 1.57 3.14] # 1000 pontos para um traçado suave t = np.linspace(0, 10, 1000)
linspace é indispensável para traçar curvas matemáticas com Matplotlib. É a ferramenta nº 1 para criar eixos contínuos.
Indexação básica
Objetivos pedagógicos
Indexação 1D: como uma lista Python
Para um array 1D, a indexação é idêntica à de uma lista Python. O primeiro elemento tem índice 0.
import numpy as np notes = np.array([12, 15, 17, 9, 18, 14]) print(notes[0]) # 12 (primeira nota) print(notes[2]) # 17 (terceira nota) print(notes[5]) # 14 (última nota)
O tipo retornado é um escalar NumPy, não um array. Você pode usá-lo como um número Python normal.
Índices negativos: a partir do final
Como em Python, -1 designa o último elemento, -2 o penúltimo, etc.
import numpy as np notes = np.array([12, 15, 17, 9, 18, 14]) print(notes[-1]) # 14 (última) print(notes[-2]) # 18 (penúltima) print(notes[-6]) # 12 (a primeira, a partir do final)
Indexação 2D: linha e coluna
Para uma matriz, são necessários dois índices: arr[i, j]. Essa é a convenção do NumPy, muito mais clara que arr[i][j] do Python.
import numpy as np bulletin = np.array([ [14, 15, 12], # aluno 0 [18, 11, 17], # aluno 1 [9, 10, 8], # aluno 2 [16, 19, 14], # aluno 3 ]) # Nota do aluno 1 na matéria 2 (inglês) print(bulletin[1, 2]) # 17 # O aluno 3 em matemática (coluna 0) print(bulletin[3, 0]) # 16
Extrair uma linha inteira
Com um único índice, recuperamos toda a linha:
import numpy as np bulletin = np.array([ [14, 15, 12], [18, 11, 17], [9, 10, 8], [16, 19, 14], ]) eleve1 = bulletin[1] print(eleve1) # [18 11 17] print(eleve1.shape) # (3,) # Equivalente explícito com slice: print(bulletin[1, :]) # [18 11 17]
As duas sintaxes bulletin[1] e bulletin[1, :] são equivalentes. A forma com : é mais explícita: « linha 1, todas as colunas ».
Extrair uma coluna inteira
Para a coluna, é OBRIGATÓRIO usar a sintaxe de duas dimensões:
import numpy as np bulletin = np.array([ [14, 15, 12], [18, 11, 17], [9, 10, 8], [16, 19, 14], ]) # Todas as notas de matemática (coluna 0) math = bulletin[:, 0] print(math) # [14 18 9 16] # Média por matéria print("Média math :", bulletin[:, 0].mean()) print("Média franc :", bulletin[:, 1].mean()) print("Média anglais :", bulletin[:, 2].mean())
Modificar um valor por atribuição
A indexação também funciona em escrita. Você pode modificar um elemento, uma linha inteira ou uma coluna:
import numpy as np bulletin = np.array([ [14, 15, 12], [18, 11, 17], [9, 10, 8], ]) # Modificar apenas uma célula bulletin[0, 1] = 16 print(bulletin[0]) # [14 16 12] # Substituir toda a linha 2 bulletin[2] = [11, 12, 13] print(bulletin) # [[14 16 12] # [18 11 17] # [11 12 13]] # Zerar uma coluna inteira bulletin[:, 2] = 0 print(bulletin) # [[14 16 0] # [18 11 0] # [11 12 0]]
Instalar NumPy e o ambiente
Objetivos pedagógicos
Verificar o Python na sua máquina
O NumPy requer Python 3.9 ou mais recente. Para verificar sua versão, abra um terminal e digite:
# Windows (PowerShell ou cmd) python --version # macOS / Linux python3 --version # Saída esperada (exemplo): # Python 3.12.4
Se o Python não estiver instalado, baixe-o no site oficial python.org/downloads. No Windows, marque a opção « Add Python to PATH » durante a instalação.
Por que um ambiente virtual?
Um ambiente virtual é uma pasta isolada que contém sua própria cópia do Python e suas próprias bibliotecas. Ele permite ter um projeto com NumPy 1.26 e outro com NumPy 2.0 sem que eles conflitem.
Sem ambiente virtual
Com ambiente virtual
Método 1: pip + venv (Python padrão)
É o método oficial, leve e integrado ao Python. Crie uma pasta de projeto e abra um terminal dentro dela:
# 1. Criar um ambiente virtual chamado "venv" python -m venv venv # 2. Ativar o ambiente # Windows PowerShell: venv\Scripts\Activate.ps1 # macOS / Linux: source venv/bin/activate # 3. Instalar NumPy pip install numpy # 4. (Opcional) Instalar também Jupyter e matplotlib pip install jupyter matplotlib pillow
Uma vez ativado, seu prompt exibe (venv) na frente. Esse é o sinal de que você está trabalhando na sua bolha isolada.
Método 2: Anaconda / Miniconda
Anaconda é uma distribuição científica do Python que já traz instaladas as principais bibliotecas de ciência de dados: NumPy, Pandas, scikit-learn, Jupyter, etc. É extremamente prático para iniciantes.
# 1. Baixar o Anaconda em anaconda.com/download # 2. Executar o instalador gráfico # 3. Após a instalação, abrir o Anaconda Prompt # Verificar a versão do NumPy fornecido conda list numpy # Criar um ambiente dedicado ao curso conda create -n cours-numpy python=3.12 numpy jupyter matplotlib pillow # Ativar conda activate cours-numpy
Se quiser apenas o estritamente necessário, opte por Miniconda, uma versão leve (~50 MB) em vez do Anaconda (~3 GB).
pip vs conda: qual escolher?
| Critério | pip + venv | conda |
|---|---|---|
| Público-alvo | Desenvolvedores Python | Cientistas de dados, estudantes |
| Tamanho inicial | Muito leve | Mais pesado (especialmente Anaconda) |
| Bibliotecas pré-instaladas | Nenhuma | Já toda a suíte de ciência de dados |
| Velocidade de instalação | Muito rápida para NumPy | Mais lenta, mas resolve melhor as dependências |
| Bibliotecas C completas | Às vezes complicado (OpenCV, etc.) | Sempre funcional |
| Recomendação do curso | OK se você já conhece Python | Recomendado para iniciantes |
Verificar se o NumPy funciona
Após a instalação, abra um interpretador Python (digitando python no terminal) e digite:
import numpy as np # Verificar a versão print(np.__version__) # Saída esperada (por exemplo): 2.1.0 # Criar um primeiro array a = np.array([1, 2, 3, 4, 5]) print(a) print("Tipo :", type(a)) print("Forma :", a.shape) print("Tipo dos elementos :", a.dtype)
Este artigo cobre os trechos mais úteis — o curso completo Python NumPy (11 capítulos, 35 lições, exercícios corrigidos e projeto final) leva você até o fim.
./acceder-au-cours-complet curso gratuito: Dominando o Claude CodeFAQ
Quanto tempo leva para aprender Python NumPy?
Precisa de pré-requisitos?
Por onde começar na prática?
📬 Quer receber este tipo de guia toda semana? Inscreva-se gratuitamente — código real, zero enrolação.