Primeiros passos em Python

Assim como foi feito para o RStudio em Primeiros passos no R (Studio), para facilitar a vida dos interessados em programação, estatística e/ou econometria, resolvi fazer uma introdução em Python. Mais a frente, o leitor verá que nosso RStudio aqui se chamará Rodeo.

O QUE É O PYTHON?

Wikipedia: Python é uma linguagem de propósito geral de alto nível, multi paradigma, suporta o paradigma orientado a objetos, imperativo, funcional e procedural. Possui tipagem dinâmica e uma de suas principais características é permitir a fácil leitura do código e exigir poucas linhas de código se comparado ao mesmo programa em outras linguagens. Devido às suas características, ela é principalmente utilizada para processamento de textos, dados científicos e criação de CGIs para páginas dinâmicas para a web.

Ou seja, Python serve para tudo. Inclusive, para estatística.

POR QUE PYTHON, SE JÁ TEMOS O R E O SAS?

A linguagem aparece como mais uma alternativa gratuita, tal como o R. Há inúmeros motivos para programar em Python, como: uma ampla comunidade online; crescimento das bibliotecas; linguagem funcional, fácil de ler, aprender e focada em produtividade; escalabilidade; visualização de dados muito boa – embora tenha uma distância considerável do R até o momento desse post, na minha opinião que pode estar limitada (sempre usei muito o R).

Claro, muitos dos elogios ao Python são aplicáveis ao R, então, ao final de tudo, você encontra vantagens e desvantagens para um e para o outro. Mas ao que tudo indica, estamos caminhando para o uso dessa linguagem em Data Science, e eu não recomendo ficar de fora.

INSTALAÇÃO

  • Na tela inicial você já poderá ver o botão de DOWNLOAD, e ao passar o mouse sobre ele, você poderá escolher de acordo com seu sistema operacional. Como eu utilizo o Windows, baixei a versão 3.6.2. Assim como acontece no R, a versão mais recente pode não executar algumas rotinas de versões antigas. Até o momento, consegui executar todos os algoritmos que preciso para modelagem nessa versão mais recente:

Python

  • Depois que baixar o arquivo, você pode acessar o Python pelo ícone executável, ou até mesmo construir os códigos em Notepad++ e executar pelo Prompt de Comando.

PLATAFORMAS MAIS AMIGÁVEIS PARA PYTHON

Assim como o R, o Python não possui uma interface tão amigável. Eu recomendo o ambiente default só se você for muito raiz mesmo. Na verdade, mesmo nesse caso, eu optaria por um editor de texto como Notepad++ ou Atom para escrever o programa e depois o executar no Prompt de Comando.

pythonidle

IDLE (Python 3.6 32-bit)

Para os que estão acostumados com o Excel (ou mesmo o SAS Guide) o ideal é ter algo mais amigável. Assim como no R, já existem ambientes para facilitar a vida do usuário de Python. Alguns dos melhores são o PyCharm (tem o grande problema de ser pago), o Spyder (falarei mais no futuro quando tratar do Anaconda) e o Rodeo. Este último é muito parecido com o RStudio e o tenho utilizado mais (ocasionalmente utilizo o Spyder para entender as diferenças). Novamente, não há nenhum segredo, basta acessar esse link e ir no botão download logo na página inicial. Há disponível no próprio site um documento com várias instruções (em inglês) que você pode conferir clicando aqui.

rodeo.PNG

Rodeo

LAYOUT

Com relação às 4 janelas do Rodeo, você não encontrará muita diferença para o RStudio:

  • No topo à esquerda (2º quadrante) é onde você vai escrever seu código (o script). Você pode ter várias janelas contendo diferentes scripts. Para abrir mais de uma, basta ir em file – new. Depois que você escrever seu código, você deve selecionar a linha que gostaria de executar e clicar em run ou utilizar o atalho ctrl+enter.
  • Assim que você executar seu código, você vai ver alterações no terminal, a tela abaixo à esquerda (3º quadrante). Você também pode escrever o código nessa tela, porém, é muito mais complicado manusear, fazer alterações e armazená-lo.
  • No topo à direita (1º quadrante) você tem duas abas: environment e history. No caso de environment, eu recomendo que você não se preocupe muito. Basicamente, você terá seus objetos nessa aba, seus dados e variáveis criadas. Em history, estará o histórico de seu script, ou seja, todo o código que você for executando vai aparecer lá. Isso é útil, pois caso você feche o programa e escolha salvar seu workplace, ao abri-lo você não perderá o histórico (o log). Você poderá ver o script executado lá, facilitando o entendimento do programa;
  • Abaixo à direita (4º quadrante) uma outra janela que vai facilitar muito sua vida, nela há 5 abas: files, plots e packages. Em files você terá o endereço do seu working directory. Esse diretório é onde você salva seus scripts e sua saída. Plots é onde você irá visualizar seus gráficos (abaixo teremos alguns exemplos). Packages possui uma ferramenta de busca para os pacotes em Python. Assim como em R, os pacotes são, colocando de forma prática, conjuntos de funções, dados e códigos compilados. Os pacotes fornecem funções que algum usuário já criou e você pode utilizá-las. Ou seja, para cada tema que você queira trabalhar, você pode buscar um pacote com funções que realizem todas as manipulações que você deseja (para maiores detalhes leia An Introduction to Python: Packages).

PRIMEIRAS MANIPULAÇÕES

Conforme já disse acima, na primeira janela do Rodeo no topo à esquerda (2º quadrante), escreveremos nosso código.

Abaixo, temos alguns exemplos de operações simples feitas no Python. O primeiro código abaixo não é exatamente a saída do Terminal (i.e. o resultado da execução das linhas do código), pois ao executar linha a linha, os comentários não aparecerão. Além disso, não vou utilizar o símbolo ‘>>>’ que aparece no terminal por causa de algumas limitações do WordPress. Entenda que a ordem de cada conjunto de três linhas é: comentário, comando do usuário e saída do Python.

Começando pelo básico, o Python serve como uma calculadora. Veja alguns cálculos que podem ser feitos com a ferramenta:

## Soma
2+2
4

## Subtracao
10-2
8

## Multiplicacao
2*5
10

## Divisao
10/2
5.0

## Resto da divisao
10%3
1

Para que não haja confusão, veja como ficou no Rodeo:

Rodeo

Uma ressalva importante aqui é que eu executei linha a linha desse código. Caso você tente selecionar tudo que foi escrito na primeira janela e executar, você terá o seguinte resultado:

## Soma
... 2+2
...
... ## Subtracao
... 10-2
...
... ##Multiplicacao
... 2*5
...
... ## Divisao
... 10/2
...
... ## Resto da divisao
... 10%3
...
...
1

Pois é, o Rodeo não entende que você quer o resultado linha a linha. Sendo assim, o output será apenas o resultado da última linha (não parece ser algo raro esse tipo de limitação: How to display full output in Jupyter, not only last result?). Caso você queira visualizar todas as saídas, será necessário criar variáveis que sejam resultados das operações e utilizar a função print() associada a cada uma delas:


## Soma
... a=2+2
... print(a)
...
... ## Subtracao
... b=10-2
... print(b)
...
... ##Multiplicacao
... c=2*5
... print(c)
...
... ## Divisao
... d=10/2
... print(d)
...
... ## Resto da divisao
... e=10%3
... print(e)
4
8
10
5.0
1

Se quiser fazer algo mais amigável, insira um texto:


## Soma
... a=2+2
... print('Resultado da soma: ',a)
Resultado da soma: 4

Novamente, para não confundir ninguém, esse é o print do meu Rodeo no momento:

rodeo2.PNG

Alguns operadores que pensamos ser triviais, não funcionam no Python, a não ser que seja utilizada alguma biblioteca ou módulo. É o caso do logaritmo, valor absoluto, raiz quadrada e somatório que fazem parte do módulo math. Para utilizá-la, primeiro importamos e atribuímos um nome, para em seguida fazer uso da função com nomeatribuido.nomedafuncao. Veja o exemplo abaixo:


# modulo math
import math as math

# calcula log de 10
math.log(10)

# calcula modulo de -10
math.fabs(-10)

# calcula raiz quadrada de 4
math.sqrt(4)

# calcula somatorio de 1,1,1,1,1
math.fsum([1,1,1,1,1])

A lista completa das funções desse módulo pode ser encontrada aqui.

Para Machine Learning, é interessante aprender a utilizar o Scikit-Learn.

IMPORTANDO ARQUIVOS

Antes da criação dos gráficos, vamos importar o arquivo com os dados que serão utilizados. Por não ser tão intuitivo quanto o R, essa seção ficará separada aqui. Nest link é possível encontrar uma base de dados referente a diferentes espécies de Iris contendo diversas informações a respeito de cada uma delas, como por exemplo tamanho e largura das pétalas. Essa base foi disponibilizada em um site que já foi indicado aqui, o Kaggle. Você encontrará inclusive muitos códigos bons de Python para trabalhar essa base. Agora que você já baixou o arquivo e extraiu do zip, primeiro é preciso importar a biblioteca Pandas utilizar a função read_csv():


# carrega biblioteca
import pandas as pd

# carrega arquivo
iris = pd.read_csv("../Iris.csv")

Pandas também possui outras funções comuns para manipulação de dados, como drop(), groupby() e rename().

Para leitura das primeiras linhas da tabela importada, a função será parecida com a utilizada no R. Deve ser utilizado o comando head(), mas este deve ser antecedido pelo nome da tabela em questão:

iris.head()

A figura abaixo mostra a saída no Terminal do Rodeo:

Capturar

HISTOGRAMA E GRÁFICO DE DISPERSÃO

Para quem não entende muito o conceito, esse post explica o que é um histograma. Aqui, focaremos somente na visualização do gráfico pelo Rodeo:

## histograma
iris.plot(kind="hist", x="SepalLengthCm", y="SepalWidthCm")

histograma

Também é possível fazer um gráfico de dispersão:

## grafico de dispersao
iris.plot(kind="scatter", x="SepalLengthCm", y="SepalWidthCm")

dispersao

Algumas pequenas mudanças podem ser feitas sem grandes dificuldades no gráfico acima, como por exemplo alterar seu título e sua cor:

## grafico de dispersao
iris.plot(kind="scatter", x="SepalLengthCm", y="SepalWidthCm", color='Green', title='Grafico de Dispersao')

dispersao2

Note que o Python é bem coerente. Uma vez que se entende que o nome da tabela sendo utilizada deve anteceder as funções, a sintaxe começa a fazer sentido e até se assemelha ao R.

Outras bibliotecas capazes de fazer gráficos mais elegantes são a Seaborn e Bokeh.

MÓDULOS E BIBLIOTECAS

Assim como o R, o Python também possui suas próprias bibliotecas. A ideia é a mesma, dentro de cada uma é disponibilizado um conjunto de funções já construídas para facilitar as tarefas dos usuários. Algo que pode causar estranheza é que às vezes aparecerá a palavra biblioteca (library) e outras vezes a palavra módulo (module). Porém, não há muito o que se preocupar, a ideia é a mesma, uma biblioteca é apenas uma forma de fazer referência ao módulo. Quem quiser ler mais sobre o assunto, fica essa discussão do StackOverflow como recomendação.

PRÓXIMOS PASSOS

Se você tem vontade de se tornar um cientista de dados, não se esqueça de estudar também o conteúdo de Estatística Básica e Econometria.

O Coursera tem um curso gratuito em Python muito bom para iniciantes: Coursera: Programming for Everybody (Getting Started with Python)

Para quem quer saber mais sobre a diferença entre R e Python: R vs. Python for Data Science: The Winner is…

 

Anúncios

2 comentários

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s