Transmissão e operações vetorizadas
Como funciona a transmissão, operações elemento a elemento e como evitar ciclos com vetorização.
Transmissão e operações vetorizadas é uma aula grátis de Learn AI with Python no CoddyKit. Esta é a aula 3 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Learn AI with Python, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Learn AI with Python inclui 4 aulas no total.
Por que Vetorizar?
NumPy opera em matrizes inteiras à velocidade de C. Substituir laços Python por expressões de matrizes, o que se chama vetorização, costuma ser de 10 a 100 vezes mais rápido.
Operações Elemento a Elemento
Os operadores aritméticos são aplicados elemento a elemento quando os formatos coincidem. Não é necessário nenhum laço.
import numpy as np
a = np.array([1, 2, 3])
b = np.array([10, 20, 30])
print(a + b) # [11 22 33]
print(a * b) # [10 40 90]Expansão de Escalar
Uma operação entre uma matriz e um escalar aplica o escalar a todos os elementos. O escalar é "expandido" por toda a matriz.
a = np.array([1, 2, 3, 4])
print(a * 10) # [10 20 30 40]
print(a + 100) # [101 102 103 104]O que é Expansão Automática?
A expansão automática permite que NumPy combine matrizes de formatos diferentes, estendendo virtualmente a menor, sem copiar a memória.
A Regra da Expansão Automática
Compare os formatos começando pela dimensão final (mais à direita). Duas dimensões são compatíveis quando são iguais ou quando uma delas é 1. Uma dimensão de tamanho 1 se expande para corresponder à outra.
# (3, 4) with (4,) -> compatible (trailing 4 matches)
# (3, 4) with (3, 1) -> compatible (1 stretches to 4)
# (3, 4) with (3,) -> ERROR (trailing 4 vs 3)Expansão de Vetor de Linha
Uma matriz 1D cujo comprimento é igual ao número de colunas é adicionada a todas as linhas.
m = np.array([[1, 2, 3], [4, 5, 6]])
row = np.array([10, 20, 30])
print(m + row)
# [[11 22 33]
# [14 25 36]]Expansão de Vetor de Coluna
Altere o formato de um vetor para uma coluna (formato (n,1)) para que ele se expanda pelas colunas, em vez de pelas linhas.
col = np.array([[100], [200]]) # shape (2, 1)
print(m + col)
# [[101 102 103]
# [204 205 206]]Centralização de Dados (Uso Real)
Subtrair a média de cada coluna centraliza cada característica, uma etapa comum de pré-processamento realizada em uma única linha com expansão automática.
data = np.array([[1.0, 10.0], [2.0, 20.0], [3.0, 30.0]])
centered = data - data.mean(axis=0)
print(centered)
# columns now have mean 0Funções Universais (ufuncs)
NumPy oferece funções matemáticas rápidas, aplicadas elemento a elemento, chamadas de funções universais: np.sqrt, np.log, np.exp e outras. Elas são vetorizadas e compatíveis com a expansão automática.
a = np.array([1.0, 4.0, 9.0, 16.0])
print(np.sqrt(a)) # [1. 2. 3. 4.]
print(np.log(a)) # natural log of each element
print(np.exp([0, 1])) # [1. 2.71828183]Velocidade de Laços versus Vetorização
O mesmo cálculo é muito mais rápido quando vetorizado. Use %timeit para perceber a diferença com um milhão de elementos.
big = np.arange(1000000, dtype=float)
# Slow Python loop:
# %timeit [x*x for x in big]
# Fast vectorized:
%timeit big * big # typically tens of times fasterCombinação de Vetorização
Encadeie funções universais e operações aritméticas para expressar fórmulas diretamente. Isso calcula uma curva gaussiana sem laços.
x = np.linspace(-3, 3, 7)
y = np.exp(-x**2 / 2)
print(np.round(y, 3))Verificação rápida
Teste sua compreensão da expansão automática.
Recapitulação
Elementos essenciais da vetorização:
- Operações elemento a elemento evitam laços Python e são executadas à velocidade de C
- A expansão automática alinha as dimensões finais; os tamanhos devem coincidir ou ser 1
- Use vetores de coluna (n,1) para expandir os valores pelas colunas
- Funções universais:
np.sqrt,np.log,np.exp - Centralize os dados com
data - data.mean(axis=0)
Perguntas Frequentes
A aula “Transmissão e operações vetorizadas” é grátis?
Sim — o texto completo de “Transmissão e operações vetorizadas” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Learn AI with Python, atualize para CoddyKit PRO. O curso de Learn AI with Python inclui 4 aulas no total.
O que vou aprender em “Transmissão e operações vetorizadas”?
Como funciona a transmissão, operações elemento a elemento e como evitar ciclos com vetorização. Você pratica Learn AI with Python com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Learn AI with Python?
Nenhuma experiência prévia é necessária. Learn AI with Python no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 3 de 4.
Quanto tempo leva a aula “Transmissão e operações vetorizadas”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Learn AI with Python?
Sim. Cada aula de Learn AI with Python inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Criação e propriedades de matrizes
- Indexação, fatiamento e indexação avançada
- Transmissão e operações vetorizadas
- Álgebra linear com NumPy