Broadcasting permite que o NumPy opere arrays com shapes diferentes sem copiar manualmente o menor. A compatibilidade é avaliada da última dimensão para a primeira: cada par deve ser igual ou conter uma dimensão de tamanho 1.
import numpy as np
vendas = np.array([
[100.0, 80.0, 120.0],
[90.0, 110.0, 70.0],
])
fatores = np.array([1.0, 0.9, 1.1])
ajustadas = vendas * fatores
print(ajustadas.shape) # (2, 3)
O vetor de três fatores é aplicado a cada linha da matriz (2, 3). Escreva comentários ou assertions sobre shapes em cálculos críticos, pois um shape compatível pode produzir um resultado semanticamente errado sem lançar exceção.
Boas práticas
Use reshape, None ou np.newaxis quando precisar tornar um eixo explícito. Inspecione array.shape e teste com dados pequenos cujo resultado possa ser calculado à mão. Evite tile() apenas para imitar broadcasting; ele costuma alocar cópias desnecessárias.
Veja o guia completo de NumPy e use pipelines do scikit-learn para manter transformações de machine learning consistentes.
O guia oficial de broadcasting do NumPy, consultado em 22 de julho de 2026, detalha a API e seus limites.