import math
import numpy as np
import pandas as pdIntrodução ao Python: Estrutura da Linguagem
Python é uma linguagem de programação de alto nível, interpretada e de propósito geral. É amplamente utilizada em ciência de dados, desenvolvimento web, automação e muitas outras áreas. Para análise de dados, utilizamos principalmente as bibliotecas NumPy para computação numérica e Pandas para manipulação de dados tabulares.
Acompanha este tutorial o Introdução ao Python
1 Pacotes essenciais
Antes de começarmos, vamos importar os pacotes fundamentais que utilizaremos:
2 Operações aritméticas
Python utiliza os operadores matemáticos padrão de forma intuitiva:
2 + 46
2 * 48
2 - 4-2
2**4 # Potenciação16
13 / 2 # Divisão comum (resultado decimal)6.5
13 // 2 # Divisão inteira6
13 % 2 # Módulo (resto da divisão)1
Python respeita a precedência dos operadores matemáticos:
5 * (9 + 2)55
5 * 9 + 247
3 + 4**219
2.1 Funções matemáticas
Python oferece funções matemáticas tanto no módulo math quanto no NumPy:
math.log(100) # Logaritmo natural
math.log10(100) # Logaritmo base 10
math.sqrt(36) # Raiz quadrada
math.pi # Constante π3.141592653589793
math.sin(0.5 * math.pi) # Seno
math.sin(math.radians(90)) # Seno de 90 graus1.0
Com NumPy, temos funções vetorizadas:
np.log(100)
np.sqrt(36)np.float64(6.0)
3 Atribuição de valores
Em Python, atribuímos valores a variáveis usando o operador =:
x = np.log(100)
xnp.float64(4.605170185988092)
y = x + 10
ynp.float64(14.605170185988092)
Ao reatribuir um valor, o anterior é substituído:
x = 5
y = x + 10
y15
Python diferencia maiúsculas de minúsculas:
a = math.sqrt(49)
A = math.sqrt(81)
a, A(7.0, 9.0)
4 Estruturas de dados
4.1 Listas
Listas são coleções ordenadas e mutáveis em Python:
x = [4, 3.0, 5, 9, 10]
x[4, 3.0, 5, 9, 10]
type(x) # Tipo do objeto
len(x) # Comprimento da lista5
Acessando elementos (índices começam em 0):
x[0] # Primeiro elemento
x[0:] # Do primeiro elemento em diante[4, 3.0, 5, 9, 10]
Importante: Multiplicar uma lista por um número replica a lista:
x * 2 # Replica a lista duas vezes[4, 3.0, 5, 9, 10, 4, 3.0, 5, 9, 10]
4.2 Arrays NumPy
Arrays são mais eficientes para operações numéricas:
y = np.array(x)
yarray([ 4., 3., 5., 9., 10.])
type(y)
len(y)
y[0] # Primeiro elemento
y[0:2] # Primeiros dois elementosarray([4., 3.])
Operações em arrays são elemento por elemento:
y * 2 # Multiplica cada elemento por 2array([ 8., 6., 10., 18., 20.])
Comparação entre listas e arrays:
x * 2 # Lista: replica
y * 2 # Array: multiplica cada elemento
[i * 2 for i in x] # List comprehension: multiplica cada elemento[8, 6.0, 10, 18, 20]
4.3 Sequências
Python oferece várias formas de criar sequências:
list(range(2, 11)) # Sequência de 2 a 10
np.linspace(2, 10, 4) # 4 pontos igualmente espaçados entre 2 e 10
np.repeat(4, 6) # Repete o valor 4 seis vezesarray([4, 4, 4, 4, 4, 4])
[2, 5] * 3 # Lista: replica
np.tile([2, 5], 3) # Array: repete o padrãoarray([2, 5, 2, 5, 2, 5])
4.4 Strings (cadeias de caracteres)
Strings são sequências de caracteres:
especies = ["Deuterodon iguape",
"Characidium japuhybense",
"Trichomycterus zonatus"]
especies['Deuterodon iguape', 'Characidium japuhybense', 'Trichomycterus zonatus']
sorted(especies) # Ordena alfabeticamente['Characidium japuhybense', 'Deuterodon iguape', 'Trichomycterus zonatus']
Importante: Python é tipado dinamicamente, mas operações devem ser compatíveis:
especies = [
"Deuterodon iguape",
"Characidium japuhybense",
"Trichomycterus zonatus",
4]
# especies[3] + 3 # Isso causaria erro: não pode somar string com número4.5 Arrays 2D (matrizes)
Listas de listas podem representar matrizes:
x = [
[21, 26, 5, 18],
[17, 28, 20, 15],
[13, 14, 27, 22]
]
x
x[0] # Primeira linha
x[0][0] # Elemento da primeira linha, primeira coluna21
Arrays NumPy oferecem indexação mais conveniente:
y = np.array(x)
y
y[0] # Primeira linha
y[0][0] # Elemento [0,0]
y[0, 0] # Notação matricial
y[0,:] # Primeira linha (todas as colunas)
y[:,0] # Primeira coluna (todas as linhas)array([21, 17, 13])
4.6 Dicionários
Dicionários armazenam pares chave-valor:
nosso_dic = {
'Ilha' : ['Ilhabela', 'Anchieta', 'Cardoso'],
'Areaskm2': [347.5, 8.3, 131]
}
nosso_dic
nosso_dic.keys() # Mostra as chavesdict_keys(['Ilha', 'Areaskm2'])
4.7 DataFrames
DataFrames são estruturas tabulares do Pandas, similares a planilhas:
df = pd.DataFrame(nosso_dic)
df
df['Ilha'] # Acessa a coluna 'Ilha'0 Ilhabela
1 Anchieta
2 Cardoso
Name: Ilha, dtype: object