title | date |
---|---|
README e temas das aulas |
01/08/2018 |
Este curso consiste em um conjunto de 10 aulas elaboradas em Jupyter notebooks sobre Python, com um foco em tratamento de dados. Esse curso foi/será ministrado no Instituto de Química da Unicamp dos dias 06/Ago até 17/Ago. de 2018.
É possível visualizar o conteúdo das aulas utilizando o visualizador online de jupyter notebooks
do Github, utilizando um leitor de PDF para as aulas transcritas ou também instalando a distribuição Anaconda do Python, iniciando um servidor com o comando jupyter notebook
e abrindo os arquivos. Para mais detalhes, veja a primeira aula.
- Introdução
- Objetivo
- Motivação
- Automatizar tarefas repetitivas
- Análise exploratória de dados
- Tratamento de dados
- Ferramentas específicas para tarefas específicas
- Por que Python
- Simples, alto nível, muito suporte, muitos pacotes
- Instalação do Python e testes
- Uso do console/terminal
- Variável PATH
- Início de um servidor
- Sobre aprender programação
- Recursos para aprendizado
- Software Carpentry, Stack Overflow, Documentação oficial, tutoriais no Youtube.
- Promessas
- Hello World
print
- Funções
- Argumentos
*args
, sem valores padrão**kwargs
, opcionais, valores padrão
- Obtenção de ajuda com Shift+Tab (1x,2x,4x).
- Strings
- Aspas simples
''
, duplas""
, triplas ('''
) Escape Sequences
:\n
,\t
,\r
- raw strings
- Aspas simples
dir
,help
,?
.- Tudo é um objeto em Python
- Métodos e propriedades internas de objetos
- Funções retornam valores
- Operações matemáticas
+
,-
,*
,/
int
s efloat
s.- Tipos de objetos,
type
. - Resto
%
, divisão sem decimal//
, potenciação**
. - Operadores matemáticos em objetos não numéricos (overloading)
- str1 + str2
- Erros e como lidar com eles. Tipos de erros
- Variáveis, declaração e atribuição.
- Conversão entre tipos de variáveis.
float
,int
,str
.
- Junção de dois tipos incompatíveis: strings e números
%s%
e%
{}
e.format
{}
ef'
- Arredondando números com
round
e{:.2f}
- Comparações entre objetos
==
,!=
,>
,>=
,<
,<=
,a < b < c
.
- Valores booleanos
True
eFalse
.
- Estruturas de dados (listas, dicionários, tuplas)
- Listas:
- Declaração:
[item1, item2]
,list()
. - Indexação:
lista[índice]
.- Começa do zero, 0.
- Índices negativos
- Comparação com strings.
- Listas aninhadas,
[][]
- Seccionamento (slicing)
início:fim (não incluso):passo
- Valores padrão (
tudo:tudo:1
) - Valores negativos para o passo
len
,max
,min
- Remoção de elementos com
del
- Métodos internos:
append
,sort
,pop
,reverse
,extend
.+
- Alguns métodos operam diretamente na lista e retornam
None
!
- Mutabilidade e Imutabilidade
- Declaração:
- Dicionários:
- Declaração:
{chave1:valor1, chave2:valor2}
,dict
- Indexação:
dict1[chave1]
- Métodos internos:
keys
,values
,items
- Declaração:
- Tuples:
- Declaração:
(item1, item2)
,(item1,)
,tuple
- unpacking e expressões com asteriscos.
- Declaração:
- Listas:
- Condicionais e loops
- Condicionais:
if
,elif
,else
.- Blocos de código precedidos por
:
. - Junção de condicionais:
and
,or
,not
,all
,any
. - Aninhamento de condicionais.
- Outros valores interpretados como verdadeiros e falsos
- Conjuntos vazios, 0.
in
- Loops:
while
efor
, loops infinitos.- Utilizando mais de um valor para um loop
for
. enumerate
,range
break
econtinue
.- Aninhamento
List comprehension
- Abrindo um arquivo de texto e separando os valores necessários.
open
,split
,unpacking
,continue
,float
- Condicionais:
- Instalando e carregando módulos
pip install
conda install
import
import pacote
import pacote as apelido
from pacote import parte
- Exemplos do uso de pacotes:
uncertainties
para o cálculo e propagação de incertezas.sympy
para matemática simbólica.glob
para criação de listas com nomes de arquivosos
para funções básicas do sistema operacional.
- Definindo funções
- Declaração:
def nome(argumentos, opcionais=padrão)
return
- Funções anônimas com
lambda
. - Documentação,
docstrings
- Lidando com erros e exceções com
try
eexcept
- Escopo de variáveis
- Declaração:
- Numpy:
import numpy as np
np.lookfor
- Numpy arrays,
linspace
- Operações afetam arrays por inteiro.
- Funções trigonométricas
sin
,cos
,tan
- Valores e índices de mínimos com
min
eargmin
logspace
,log10
- Criação de arrays 1D e 2D a partir de listas.
- Indexação e slicing de arrays 2D
[linha][coluna]
,[linha, coluna]
[l_i:l_f, col_i:col_f]
- Pacote
random
- Constantes
pi
,e
- Multiplicação de arrays
- Termo a termo
- Matricial,
np.dot
,@
- Transformação de vetores sem dimensão para vetores linha e coluna
- Pandas:
import pandas as pd
- Carregando arquivos com
read_csv
- Objeto criado e chamado de
DataFrame
se tiver mais de duas colunas, ouSeries
se tiver só uma. sep
decimal
names
engine
header
na_values
encoding
- Objeto criado e chamado de
head
,info
- Indexação retorna colunas.
df['col1']
retorna uma colunadf[['col1, col2']]
retorna duas colunas
loc
retorna linhas e colunas com base em seus nomes.df.loc[l_i:l_f, col_i:col_f]
iloc
retorna linhas e colunas com base em seus índices.df.iloc[l_i:l_f, col_i:col_f]
- Máscaras lógicas
- Criação de um dataframe seguindo uma condição:
filtro = df['y'] < media
- Aplicação do filtro no dataframe inicial.
filtrado = df[filtro]
- Criação de um dataframe seguindo uma condição:
- Criação de gráficos com matplotlib e pyplot:
import matplotlib.pyplot as plt
plot
,xlabel
,ylabel
,title
,text
- Customizando linhas
color
linestyle
linewidth
marker
markersize
markerfacecolor
plot
s múltiplos colocam mais linhasfigure
,figsize
,dpi
ylim
,xlim
,axhline
,axvline
- Alterando o separador decimal
label
elegend
savefig
e formatos.- Método implícito (
plt.plot
) e método explícito (ax.plot
) - Subplots com
subplot
(imp) esubplots
(exp). twinx
xscale
,yscale
errorbar
- Junção de pandas e pyplot.
imshow
e mapas de cor.
- Algumas ferramentas para tratamento de dados
- Processo de tratamento
scipy
find_peaks_cwt
savgol_filter
curve_fit
uncertainties
eplots
integrate.quad
scikit-image
lmfit
- Expressões regulares com
re
. - Outras ferramentas de visualização:
Seaborn
eAltair