| 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
+,-,*,/ints efloats.- 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
rounde{:.2f}
- Comparações entre objetos
==,!=,>,>=,<,<=,a < b < c.
- Valores booleanos
TrueeFalse.
- 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:
whileefor, loops infinitos.- Utilizando mais de um valor para um loop
for. enumerate,rangebreakecontinue.- 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 installconda installimportimport pacoteimport pacote as apelidofrom pacote import parte
- Exemplos do uso de pacotes:
uncertaintiespara o cálculo e propagação de incertezas.sympypara matemática simbólica.globpara criação de listas com nomes de arquivosospara 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
tryeexcept - Escopo de variáveis
- Declaração:
- Numpy:
import numpy as npnp.lookfor- Numpy arrays,
linspace- Operações afetam arrays por inteiro.
- Funções trigonométricas
sin,cos,tan - Valores e índices de mínimos com
mineargmin 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
DataFramese tiver mais de duas colunas, ouSeriesse tiver só uma. sepdecimalnamesengineheaderna_valuesencoding
- Objeto criado e chamado de
head,info- Indexação retorna colunas.
df['col1']retorna uma colunadf[['col1, col2']]retorna duas colunas
locretorna linhas e colunas com base em seus nomes.df.loc[l_i:l_f, col_i:col_f]
ilocretorna 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 pltplot,xlabel,ylabel,title,text- Customizando linhas
colorlinestylelinewidthmarkermarkersizemarkerfacecolor
plots múltiplos colocam mais linhasfigure,figsize,dpiylim,xlim,axhline,axvline- Alterando o separador decimal
labelelegendsavefige formatos.- Método implícito (
plt.plot) e método explícito (ax.plot) - Subplots com
subplot(imp) esubplots(exp). twinxxscale,yscaleerrorbar- Junção de pandas e pyplot.
imshowe mapas de cor.
- Algumas ferramentas para tratamento de dados
- Processo de tratamento
scipyfind_peaks_cwtsavgol_filtercurve_fituncertaintieseplotsintegrate.quad
scikit-imagelmfit- Expressões regulares com
re. - Outras ferramentas de visualização:
SeaborneAltair