0Pricing
Python Academy · Aula

Operações com arrays e broadcasting

Realize operações aritméticas vetorizadas e entenda as regras de broadcasting.

Operações com arrays e broadcasting é uma aula grátis de Python Academy no CoddyKit. Esta é a aula 2 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 Python Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Python Academy inclui 4 aulas no total.

Aritmética vetorizada

O NumPy aplica operações aritméticas elemento a elemento em arrays inteiros, sem loops de Python — a execução ocorre em código C otimizado.

import numpy as np

a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
print(a + b)    # [5 7 9]
print(a * b)    # [4 10 18]
print(a ** 2)   # [1 4 9]

Funções universais (ufuncs)

As ufuncs do NumPy aplicam funções em C elemento a elemento: np.sqrt, np.exp, np.log, np.sin etc.

import numpy as np

x = np.linspace(0, np.pi, 5)
print(np.sin(x))   # [0. 0.707 1. 0.707 0.]
print(np.exp([1.0, 2.0, 3.0]))   # [2.718 7.389 20.086]

Operações de redução

Reduza um array a um escalar (ou a um array de dimensão menor) com np.sum, np.mean, np.max, np.min, np.std.

import numpy as np

m = np.array([[1, 2, 3], [4, 5, 6]])
print(np.sum(m))          # 21
print(np.sum(m, axis=0))  # [5 7 9]  — sum each column
print(np.sum(m, axis=1))  # [6 15]   — sum each row

Regras de broadcasting

O broadcasting expande arrays menores para corresponder aos maiores — sem copiar os dados. Regra: as dimensões são alinhadas da direita para a esquerda; dimensões de tamanho 1 são expandidas.

import numpy as np

a = np.array([[1], [2], [3]])  # shape (3,1)
b = np.array([10, 20, 30])     # shape (3,)

print(a + b)
# [[11 21 31]
#  [12 22 32]
#  [13 23 33]]

Operações escalares com broadcasting

Um escalar é expandido para todos os elementos do array.

import numpy as np

arr = np.arange(6).reshape(2, 3)
print(arr + 10)
# [[10 11 12]
#  [13 14 15]]
print(arr * 0.5)
# [[0.  0.5 1. ]
#  [1.5 2.  2.5]]

Operações de comparação e booleanas

As comparações produzem arrays booleanos. Combine-os com &, |, ~ (não com and/or/not do Python).

import numpy as np

arr = np.array([1, 5, 3, 8, 2])
print(arr > 3)           # [False  True False  True False]
print(arr[(arr > 2) & (arr < 7)])  # [5 3]

where()

np.where(condition, x, y) retorna elementos de x quando o valor é True e de y quando é False.

import numpy as np

arr = np.array([-2, 3, -1, 4, 0])
result = np.where(arr >= 0, arr, 0)  # clip negatives to 0
print(result)   # [0 3 0 4 0]

Agregações ao longo dos eixos

Especifique axis= para reduzir ao longo de uma dimensão específica de um array multidimensional.

import numpy as np

data = np.arange(12).reshape(3, 4)
print(data.mean(axis=0))   # mean of each column → shape (4,)
print(data.mean(axis=1))   # mean of each row → shape (3,)

cumsum e diff

np.cumsum calcula somas cumulativas; np.diff calcula as diferenças entre elementos consecutivos.

import numpy as np

prices = np.array([100, 110, 105, 115])
print(np.cumsum(prices))          # [100 210 315 430]
print(np.diff(prices))            # [10 -5 10] (daily changes)

Operações vetorizadas com strings

np.char fornece operações vetorizadas com strings em arrays de strings.

import numpy as np

words = np.array(["apple", "banana", "cherry"])
print(np.char.upper(words))       # ['APPLE' 'BANANA' 'CHERRY']
print(np.char.startswith(words, "a"))  # [True False False]

Desempenho versus listas do Python

O NumPy é de 10 a 100 vezes mais rápido do que loops equivalentes do Python em tarefas numéricas, pois executa em C sem a sobrecarga do interpretador Python.

import numpy as np, time

n = 1_000_000

start = time.perf_counter()
python_sum = sum(i**2 for i in range(n))
print(f"Python: {time.perf_counter()-start:.3f}s")

arr = np.arange(n)
start = time.perf_counter()
numpy_sum = (arr**2).sum()
print(f"NumPy:  {time.perf_counter()-start:.3f}s")

Verificação rápida

Ao somar um array de forma (3,1) a um array de forma (3,), qual será a forma do resultado?

Recapitulação

As operações do NumPy são executadas elemento a elemento em C (sem loops de Python). O broadcasting expande formas compatíveis sem copiar os dados. Use axis= para reduções ao longo de dimensões específicas. As ufuncs (np.sin, np.exp etc.) aplicam operações elemento a elemento na velocidade de C.

Perguntas Frequentes

A aula “Operações com arrays e broadcasting” é grátis?

Sim — o texto completo de “Operações com arrays e broadcasting” é 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 Python Academy, atualize para CoddyKit PRO. O curso de Python Academy inclui 4 aulas no total.

O que vou aprender em “Operações com arrays e broadcasting”?

Realize operações aritméticas vetorizadas e entenda as regras de broadcasting. Você pratica Python Academy 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 Python Academy?

Nenhuma experiência prévia é necessária. Python Academy 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 2 de 4.

Quanto tempo leva a aula “Operações com arrays e broadcasting”?

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 Python Academy?

Sim. Cada aula de Python Academy 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. Arrays NumPy e dtypes
  2. Operações com arrays e broadcasting
  3. Indexação, fatiamento e indexação avançada
  4. Álgebra linear com NumPy
← Voltar para Python Academy