Funções avançadas com Numpy
Guia Prático: Funções Avançadas do NumPy
1. 📡 Broadcasting
Permite realizar operações entre arrays de formas diferentes sem precisar replicar dados.
import numpy as np a = np.array([1, 2, 3]) b = 2 print(a + b) # Resultado: [3 4 5] # Com formas diferentes: A = np.array([[1], [2], [3]]) B = np.array([10, 20, 30]) print(A + B) # Resultado: # [[11 21 31] # [12 22 32] # [13 23 33]]
Regras: Alinhamento de formas da direita para a esquerda e "expansão" de dimensões com tamanho 1.
2. 🧮 Agregações
Funções para resumir dados: soma, média, desvio padrão, etc.
data = np.array([[1, 2, 3], [4, 5, 6]]) print(data.sum()) # Soma total print(data.sum(axis=0)) # Soma por colunas: [5 7 9] print(data.mean(axis=1)) # Média por linhas: [2. 5.] print(data.std()) # Desvio padrão
3. 🔀 Manipulação Avançada de Arrays
🔁 Reshape & Flatten
arr = np.arange(6).reshape(2, 3) print(arr) flat = arr.flatten() # Copia 1D r = arr.ravel() # Visualização 1D (não copia)
🔄 Stack e Concatenate
a = np.array([[1, 2]]) b = np.array([[3, 4]]) print(np.concatenate([a, b], axis=0)) # Linhas print(np.vstack([a, b])) # Igual print(np.hstack([a.T, b.T])) # Colunas
🔁 Split e Tile
x = np.arange(8) np.split(x, 4) # Divide em partes iguais np.tile(x, 2) # Repete array
4. ⚙️ Funções Universais (ufuncs)
São funções vetorizadas que aplicam operações element-wise com alta performance.
a = np.array([1, 2, 3]) print(np.exp(a)) # exponencial print(np.log(a)) # log natural print(np.sqrt(a)) # raiz quadrada print(np.add(a, 1)) # soma
Muitas ufuncs suportam out= (para evitar alocação extra) e where= (para aplicar condicionalmente).
5. 🚀 Performance e Otimização
✅ Evite loops com operações vetorizadas
# Ineficiente: res = [] for i in range(1000): res.append(i**2) # Eficiente: res = np.arange(1000) ** 2
🧩 Use tipos corretos e evite cópias desnecessárias
a = np.array([1, 2, 3], dtype=np.float32) # Mais leve b = a.view() # Mesma memória
🔬 Benchmark com %timeit (no Jupyter)
%timeit np.arange(1e6) ** 2
📦 Use numexpr, numbа, ou Cython para aceleração extra
Avaliação
0
0
Por enquanto não há comentários.
Participe desse curso
para ser o primeiro a comentar.