Introdução ao NumPy: Arrays e Operações Matemáticas em Python
Neste artigo, você vai aprender:
O que é o NumPy e por que ele é tão usado.
Diferença entre listas Python e arrays NumPy.
Como criar e manipular arrays.
Operações matemáticas e estatísticas básicas.
Exemplos práticos de uso no dia a dia.
🔹 1. O que é o NumPy?
NumPy (Numerical Python) é uma biblioteca voltada para computação numérica eficiente.
Ele fornece:
Arrays multidimensionais (semelhantes a matrizes).
Operações matemáticas vetorizadas muito mais rápidas que loops comuns em Python.
Funções de álgebra linear, estatística e transformadas.
Base para processamento de dados em ciência de dados e machine learning.
👉 Por baixo dos panos, o NumPy é implementado em C, o que o torna extremamente rápido em comparação às listas nativas do Python.
🔹 2. Instalando o NumPy
Se você ainda não tem instalado:
pip install numpy
🔹 3. Diferença entre Lista Python e Array NumPy
import numpy as np
lista = [1, 2, 3, 4, 5]
array = np.array([1, 2, 3, 4, 5])
print("Lista:", lista)
print("Array:", array)
Diferenças principais:
Lista Python: pode armazenar diferentes tipos (números, strings, objetos).
Array NumPy: exige tipos homogêneos (todos inteiros, floats, etc.), garantindo eficiência.
Arrays permitem operações vetorizadas diretas:
print(array * 2) # [ 2 4 6 8 10 ]
Se tentarmos fazer isso com listas:
print(lista * 2) # [1, 2, 3, 4, 5, 1, 2, 3, 4, 5] (repete a lista)
🔹 4. Criando Arrays no NumPy
A partir de listas
a = np.array([10, 20, 30])
print(a)
Arrays multidimensionais (matrizes)
b = np.array([[1, 2, 3], [4, 5, 6]])
print(b)
Arrays com valores automáticos
np.zeros((3,3)) # matriz 3x3 de zeros
np.ones((2,2)) # matriz 2x2 de uns
np.arange(0, 10, 2) # [0, 2, 4, 6, 8]
np.linspace(0, 1, 5) # [0. , 0.25, 0.5 , 0.75, 1. ]
🔹 5. Atributos úteis de Arrays
arr = np.array([[1, 2, 3], [4, 5, 6]])
print(arr.shape) # (2,3) → dimensões
print(arr.ndim) # 2 → número de dimensões
print(arr.size) # 6 → total de elementos
print(arr.dtype) # tipo dos dados (ex: int32, float64)
🔹 6. Operações Matemáticas com Arrays
Operações elemento a elemento
x = np.array([1, 2, 3])
y = np.array([4, 5, 6])
print(x + y) # [5 7 9]
print(x * y) # [ 4 10 18]
print(x ** 2) # [1 4 9]
Funções matemáticas prontas
a = np.array([1, 2, 3, 4, 5])
print(np.sum(a)) # 15
print(np.mean(a)) # 3.0 (média)
print(np.std(a)) # desvio padrão
print(np.max(a)) # 5
print(np.min(a)) # 1
Operações com matrizes
m1 = np.array([[1, 2], [3, 4]])
m2 = np.array([[5, 6], [7, 8]])
print(np.dot(m1, m2))
# [[19 22]
# [43 50]]
🔹 7. Indexação e Fatiamento
Assim como listas, arrays permitem acessar elementos com índices:
arr = np.array([10, 20, 30, 40, 50])
print(arr[0]) # 10
print(arr[-1]) # 50
print(arr[1:4]) # [20 30 40]
Em arrays multidimensionais:
mat = np.array([[1,2,3],[4,5,6],[7,8,9]])
print(mat[0, 2]) # 3 (linha 0, coluna 2)
print(mat[:, 1]) # [2 5 8] (toda a coluna 1)
print(mat[1, :]) # [4 5 6] (linha 1 inteira)
🔹 8. Aplicação prática: Normalizando dados
Um caso muito comum em ciência de dados é normalizar valores para que fiquem em uma mesma escala:
dados = np.array([10, 20, 30, 40, 50])
normalizado = (dados - np.min(dados)) / (np.max(dados) - np.min(dados))
print(normalizado) # [0. 0.25 0.5 0.75 1. ]
🔹 9. Aplicação prática: Cálculo rápido em grandes volumes de dados
# Criando 1 milhão de valores
grande_array = np.random.rand(1_000_000)
# Média e desvio padrão em milissegundos
print("Média:", np.mean(grande_array))
print("Desvio Padrão:", np.std(grande_array))
👉 Fazer isso com listas e loops seria muito mais lento!
🔹 10. Conclusão
O NumPy é a base da análise numérica em Python, permitindo:
Criação de arrays eficientes e rápidos.
Operações matemáticas vetorizadas.
Ferramentas de estatística e álgebra linear.
Manipulação de grandes volumes de dados de forma prática.
Se você quer avançar em data science, machine learning ou até mesmo cálculos científicos, dominar o NumPy é um passo obrigatório. 🚀

Comentários
Postar um comentário