0Pricing
Learn AI with Python · Aula

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 0

Funçõ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 faster

Combinaçã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

  1. Criação e propriedades de matrizes
  2. Indexação, fatiamento e indexação avançada
  3. Transmissão e operações vetorizadas
  4. Álgebra linear com NumPy
← Voltar para Learn AI with Python