NumPy
Criação de Arrays
A função np.array transforma uma lista ou tupla em um array NumPy.
import numpy as np
dados = np.array([10, 20, 30, 40, 50])
print("Resultado de np.array:", dados)
# Saída: [10 20 30 40 50]
Outras funções úteis incluem np.zeros para arays de zeros, np.ones para arrays de uns, e np.arange para sequências aritméticas.
matriz_zeros = np.zeros((3, 2))
print("Array de zeros:\n", matriz_zeros)
sequencia = np.arange(0, 12, 3)
print("Sequência com np.arange:", sequencia)
Operações Matemáticas
Funções como np.add e np.multiply realizam operações elemento a elemento entre arrays.
a = np.array([5, 10, 15])
b = np.array([2, 4, 6])
soma = np.add(a, b)
print("Soma:", soma) # Saída: [7 14 21]
Estatísticas
Calcule a média, mediana ou desvio padrão com funções como np.mean e np.std.
valores = np.array([8, 12, 15, 10, 20])
media = np.mean(valores)
print("Média:", media) # Saída: 13.0
Álgebra Linear
Use np.dot para produtos esaclares ou multiplicação de matrizes, e np.linalg.inv para inversão de matrizes.
vetor1 = np.array([2, 3])
vetor2 = np.array([4, 1])
produto = np.dot(vetor1, vetor2)
print("Produto escalar:", produto) # Saída: 11
matriz = np.array([[1, 2], [3, 4]])
inversa = np.linalg.inv(matriz)
print("Matriz inversa:\n", inversa)
Números Aleatórios
Gere números aleatórios com np.random.rand para distribuição uniforme ou np.random.randn para distribuição normal.
aleatorio = np.random.rand(2, 3)
print("Array aleatório uniforme:\n", aleatorio)
normal = np.random.randn(3, 1)
print("Array aleatório normal:\n", normal)
Manipulação de Arrays
Altere a forma com reshape, aplane com flatten, ou transponha com T.
array_original = np.arange(12)
reformatado = array_original.reshape(3, 4)
print("Array reformado:\n", reformatado)
plano = reformatado.flatten()
print("Array achatado:", plano)
Condições e Filtragem
Utilize np.where para substituir valores com base em condições.
dados = np.array([5, -1, 3, 0, -4])
corrigidos = np.where(dados < 0, np.nan, dados)
print("Dados corrigidos:", corrigidos)
Pandas
Estruturas de Dados
DataFrames são tabelas bidiemnsionais criadas com pd.DataFrame.
import pandas as pd
informacoes = {
'Nome': ['Ana', 'Carlos', 'Maria'],
'Idade': [28, 35, 22]
}
tabela = pd.DataFrame(informacoes)
print(tabela)
Series são arrays unidimensionais com rótulos, criados com pd.Series.
valores = pd.Series([100, 200, 300], index=['x', 'y', 'z'])
print(valores)
Entrada e Saída de Dados
Leia e escreva dados em formatos como CSV, Excel ou SQL.
# Exemplo: Leitura de CSV
df = pd.read_csv('caminho/para/arquivo.csv')
print(df.head())
# Exemplo: Escrita em Excel
df.to_excel('saida.xlsx', index=False)
Limpeza de Dados
Trate valores ausentes com fillna ou remova duplicatas com drop_duplicates.
dados_sujos = pd.DataFrame({
'Produto': ['A', 'B', 'A', 'C'],
'Preço': [10, None, 10, 15]
})
dados_limpos = dados_sujos.dropna()
print(dados_limpos)
Filtragem e Estatísticas
Filtre dados com condições e calcule estatísticas com describe.
vendas = pd.DataFrame({
'Mes': ['Jan', 'Fev', 'Mar'],
'Valor': [1500, 1800, 1200]
})
vendas_altas = vendas[vendas['Valor'] > 1400]
print(vendas_altas)
Matplotlib
Gráficos Básicos
Crie gráficos de linhas, barras ou dispersão com funções como plt.plot.
import matplotlib.pyplot as plt
x = [1, 2, 3, 4]
y = [10, 20, 25, 30]
plt.plot(x, y, label='Linha 1')
plt.xlabel('Eixo X')
plt.ylabel('Eixo Y')
plt.legend()
plt.show()
Personalização
Ajuste o tamanho da figura, adicione grades ou anote pontos.
plt.figure(figsize=(8, 4))
plt.plot(x, y, linestyle='--', color='green')
plt.grid(True)
plt.annotate('Ponto máximo', xy=(4, 30), fontsize=10)
plt.show()
Diversos Tipos de Gráficos
Explore gráficos como pizza, histogramas e boxplots.
dados_pizza = [25, 35, 20, 20]
rotulos = ['A', 'B', 'C', 'D']
plt.pie(dados_pizza, labels=rotulos, autopct='%1.1f%%')
plt.title('Distribuição Percentual')
plt.show()
Subplots e Gráficos Avançados
Use plt.subplots para múltiplos gráficos em uma figura.
fig, eixos = plt.subplots(2, 2)
eixos[0, 0].plot(x, y)
eixos[0, 1].bar(rotulos, dados_pizza)
eixos[1, 0].hist([1,2,2,3,3,3,4,4,5], bins=5)
plt.tight_layout()
plt.show()