Neste capítulo, vamos explorar duas das bibliotecas mais poderosas e populares para análise de dados em Python: Pandas e NumPy. Estas bibliotecas vão facilitar enormemente o teu trabalho com dados, permitindo-te realizar operações complexas de maneira eficiente e eficaz.
NumPy: A Base para a Computação Numérica
NumPy (Numerical Python) fornece suporte extensivo para arrays de grandes dimensões e matrizes multidimensionais. Também inclui uma vasta coleção de funções matemáticas de alto nível para operações com esses arrays.
Criação e Manipulação de Arrays
Para começar, precisamos de importar a biblioteca NumPy:
import numpy as np
Arrays Unidimensionais
Vamos criar um array unidimensional (vetor):
array_unidimensional = np.array([1, 2, 3, 4, 5])
print(array_unidimensional)
Arrays Multidimensionais
Um array bidimensional (matriz) pode ser criado da seguinte forma:
array_bidimensional = np.array([[1, 2, 3], [4, 5, 6]])
print(array_bidimensional)
Operações Matemáticas em Arrays
NumPy permite realizar operações matemáticas em arrays de forma muito eficiente. Por exemplo, podemos somar dois arrays:
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
soma = a + b
print(soma)
Funções Universais (ufuncs)
NumPy fornece várias funções universais para operações como a raiz quadrada, seno, cosseno, etc. Por exemplo:
raiz_quadrada = np.sqrt(array_unidimensional)
print(raiz_quadrada)
Aplicação Prática
Suponhamos que temos uma lista de temperaturas em Celsius e queremos convertê-la para Fahrenheit. Podemos usar NumPy para fazer isto de forma muito simples:
temperaturas_celsius = np.array([0, 20, 25, 30, 35])
temperaturas_fahrenheit = (temperaturas_celsius * 9/5) + 32
print(temperaturas_fahrenheit)
Pandas: Manipulação de Dados de Forma Eficiente
Pandas é uma biblioteca que fornece estruturas de dados de alto desempenho, como DataFrames, que são essenciais para a análise de dados.
Criação de DataFrames
Para utilizar Pandas, primeiro precisamos de importar a biblioteca:
import pandas as pd
Um DataFrame pode ser criado a partir de um dicionário:
dados = {
'Nome': ['Ana', 'Bruno', 'Carlos'],
'Idade': [23, 35, 30],
'Cidade': ['Lisboa', 'Porto', 'Coimbra']
}
df = pd.DataFrame(dados)
print(df)
Leitura de Ficheiros CSV
Pandas facilita a leitura de ficheiros CSV, muito comuns em manipulação de dados:
df_csv = pd.read_csv('dataset.csv')
print(df_csv.head())
Seleção e Filtragem de Dados
Pandas permite selecionar e filtrar dados de forma muito intuitiva:
# Selecionar uma coluna
idades = df['Idade']
print(idades)
# Filtrar linhas
df_filtrado = df[df['Idade'] > 30]
print(df_filtrado)
Manipulação de Dados
Pandas também facilita a manipulação de dados, como a adição de novas colunas:
df['Altura'] = [1.70, 1.80, 1.75]
print(df)
Gráficos Simples com Pandas
Podemos criar gráficos simples diretamente a partir de um DataFrame:
df['Idade'].plot(kind='hist', title='Distribuição das Idades')
Aplicação Prática
Suponhamos que temos um conjunto de dados sobre vendas e queremos calcular a média de vendas por cidade:
dados_vendas = {
'Cidade': ['Lisboa', 'Porto', 'Lisboa', 'Coimbra', 'Porto'],
'Vendas': [250, 450, 300, 150, 500]
}
df_vendas = pd.DataFrame(dados_vendas)
media_vendas_por_cidade = df_vendas.groupby('Cidade')['Vendas'].mean()
print(media_vendas_por_cidade)
Resumo
Neste capítulo, introduzimos duas poderosas bibliotecas de Python: NumPy e Pandas. Vimos como criar e manipular arrays em NumPy, e como utilizar Pandas para criar, filtrar e manipular DataFrames. Estas ferramentas são essenciais para qualquer tarefa de análise de dados e fornecem uma base sólida para avançarmos para tópicos mais complexos.
Questionário
- Como se cria um array unidimensional em NumPy?
- Qual a principal estrutura de dados utilizada pela biblioteca Pandas?
- Como se pode ler um ficheiro CSV usando Pandas?
- Qual a função de NumPy utilizada para calcular a raiz quadrada de um array?
- Como se pode adicionar uma nova coluna a um DataFrame em Pandas?
Este questionário serve para verificar a tua compreensão das principais funcionalidades das bibliotecas NumPy e Pandas abordadas neste capítulo. Boa sorte!