summaryrefslogtreecommitdiffhomepage
path: root/pt-br/pythonstatcomp.html.markdown
diff options
context:
space:
mode:
authorMarcel Ribeiro Dantas, Ph.D <ribeirodantasdm@gmail.com>2022-07-07 14:36:54 +0200
committerGitHub <noreply@github.com>2022-07-07 14:36:54 +0200
commit4bbbdf09a04c5d54590ba067fa6dc11eeefbdc2e (patch)
tree99790245a1f4fe8ea2c473e2d9ec39e9d4c8095d /pt-br/pythonstatcomp.html.markdown
parentf62120e5c69c421eb16eb68ec77720ab77aac37a (diff)
Update and rename pythonstatcomp.html.markdown to pythonstatcomp-pt.html.markdown
Diffstat (limited to 'pt-br/pythonstatcomp.html.markdown')
-rw-r--r--pt-br/pythonstatcomp.html.markdown248
1 files changed, 0 insertions, 248 deletions
diff --git a/pt-br/pythonstatcomp.html.markdown b/pt-br/pythonstatcomp.html.markdown
deleted file mode 100644
index 36659cb0..00000000
--- a/pt-br/pythonstatcomp.html.markdown
+++ /dev/null
@@ -1,248 +0,0 @@
----
-category: tool
-tool: Computação estatística com Python
-contributors:
- - ["e99n09", "https://github.com/e99n09"]
-translators:
- - ["waltercjunior", "https://github.com/waltercjunior"]
-filename: pythonstatcomp-py.py
----
-
-Este é um tutorial sobre como fazer algumas tarefas típicas de programação estatística usando Python.
-É destinado basicamente à pessoas familizarizadas com Python e experientes com programação estatística em linguagens como R,
-Stata, SAS, SPSS ou MATLAB.
-
-```python
-
-
-
-# 0. Preparando-se ====
-
-""" Para começar, instale o seguinte : jupyther, numpy, scipy, pandas,
- matplotlib, seaborn, requests.
- Certifique-se de executar este tutorial utilizando o Jupyther notebook para
- que você utilize os gráficos embarcados e ter uma fácil consulta à
- documentação.
- O comando para abrir é simplesmente '`jupyter notebook`, quando abrir então
- clique em 'New -> Python'.
-"""
-
-# 1. Aquisição de dados ====
-
-""" A única razão das pessoas optarem por Python no lugar de R é que pretendem
- interagir com o ambiente web, copiando páginas diretamente ou solicitando
- dados utilizando uma API. Você pode fazer estas coisas em R, mas no
- contexto de um projeto já usando Python, há uma vantagem em se ater uma
- linguágem única.
-"""
-
-import requests # para requisições HTTP (web scraping, APIs)
-import os
-
-# web scraping
-r = requests.get("https://github.com/adambard/learnxinyminutes-docs")
-r.status_code # se retornou código 200, a requisição foi bem sucedida
-r.text # código fonte bruto da página
-print(r.text) # formatado bonitinho
-# salve a o código fonte d apágina em um arquivo:
-os.getcwd() # verifique qual é o diretório de trabalho
-with open("learnxinyminutes.html", "wb") as f:
- f.write(r.text.encode("UTF-8"))
-
-# Baixar um arquivo csv
-fp = "https://raw.githubusercontent.com/adambard/learnxinyminutes-docs/master/"
-fn = "pets.csv"
-r = requests.get(fp + fn)
-print(r.text)
-with open(fn, "wb") as f:
- f.write(r.text.encode("UTF-8"))
-
-""" para mais informações sobre o módulo de solicitações, incluindo API's, veja em
- http://docs.python-requests.org/en/latest/user/quickstart/
-"""
-
-# 2. Lendo um arquivo formato CSV ====
-
-""" Um pacote de pandas da Wes McKinney lhe dá um objeto 'DataFrame' em Python.
- Se você já usou R, já deve estar familiarizado com a ideia de "data.frame".
-"""
-
-import pandas as pd
-import numpy as np
-import scipy as sp
-pets = pd.read_csv(fn)
-pets
-# name age weight species
-# 0 fluffy 3 14 cat
-# 1 vesuvius 6 23 fish
-# 2 rex 5 34 dog
-
-""" Usuários R: observe que o Python, como a maioria das linguagens de programação
- influenciada pelo C, a indexação começa de 0. Em R, começa a indexar em 1
- devido à influência do Fortran.
-"""
-
-# duas maneiras diferentes de imprimir uma coluna
-pets.age
-pets["age"]
-
-pets.head(2) # imprima as 2 primeiras linhas
-pets.tail(1) # imprima a última linha
-
-pets.name[1] # 'vesuvius'
-pets.species[0] # 'cat'
-pets["weight"][2] # 34
-
-# Em R, você esperaria obter 3 linhas fazendo isso, mas aqui você obtem 2:
-pets.age[0:2]
-# 0 3
-# 1 6
-
-sum(pets.age) * 2 # 28
-max(pets.weight) - min(pets.weight) # 20
-
-""" Se você está fazendo alguma álgebra linear séria e processamento de
- números você pode desejar apenas arrays, não DataFrames. DataFrames são
- ideais para combinar colunas de diferentes tipos de dados.
-"""
-
-# 3. Gráficos ====
-
-import matplotlib as mpl
-import matplotlib.pyplot as plt
-%matplotlib inline
-
-# Para fazer a visualiação de dados em Python, use matplotlib
-
-plt.hist(pets.age);
-
-plt.boxplot(pets.weight);
-
-plt.scatter(pets.age, pets.weight)
-plt.xlabel("age")
-plt.ylabel("weight");
-
-# seaborn utiliza a biblioteca do matplotlib e torna os enredos mais bonitos
-
-import seaborn as sns
-
-plt.scatter(pets.age, pets.weight)
-plt.xlabel("age")
-plt.ylabel("weight");
-
-# também existem algumas funções de plotagem específicas do seaborn
-# observe como o seaborn automaticamenteo o eixto x neste gráfico de barras
-sns.barplot(pets["age"])
-
-# Veteranos em R ainda podem usar o ggplot
-from ggplot import *
-ggplot(aes(x="age",y="weight"), data=pets) + geom_point() + labs(title="pets")
-# fonte: https://pypi.python.org/pypi/ggplot
-
-# há até um d3.js veja em: https://github.com/mikedewar/d3py
-
-# 4. Limpeza de dados simples e análise exploratória ====
-
-""" Aqui está um exemplo mais complicado que demonstra dados básicos
- fluxo de trabalho de limpeza levando à criação de algumas parcelas
- e a execução de uma regressão linear.
- O conjunto de dados foi transcrito da Wikipedia à mão. Contém
- todos os sagrados imperadores romanos e os marcos importantes em suas vidas
- (birth, death, coronation, etc.).
- O objetivo da análise será explorar se um relacionamento existe
- entre o ano de nascimento (birth year) e a expectativa de vida (lifespam)
- do imperador.
- Fonte de dados: https://en.wikipedia.org/wiki/Holy_Roman_Emperor
-"""
-
-# carregue alguns dados dos sagrados imperadores romanos
-url = "https://raw.githubusercontent.com/adambard/learnxinyminutes-docs/master/hre.csv"
-r = requests.get(url)
-fp = "hre.csv"
-with open(fp, "wb") as f:
- f.write(r.text.encode("UTF-8"))
-
-hre = pd.read_csv(fp)
-
-hre.head()
-"""
- Ix Dynasty Name Birth Death
-0 NaN Carolingian Charles I 2 April 742 28 January 814
-1 NaN Carolingian Louis I 778 20 June 840
-2 NaN Carolingian Lothair I 795 29 September 855
-3 NaN Carolingian Louis II 825 12 August 875
-4 NaN Carolingian Charles II 13 June 823 6 October 877
-
- Coronation 1 Coronation 2 Ceased to be Emperor
-0 25 December 800 NaN 28 January 814
-1 11 September 813 5 October 816 20 June 840
-2 5 April 823 NaN 29 September 855
-3 Easter 850 18 May 872 12 August 875
-4 29 December 875 NaN 6 October 877
-"""
-
-# limpar as colunas Birth e Death
-
-import re # módulo para expressões regulares
-
-rx = re.compile(r'\d+$') # conincidir com os códigos finais
-
-""" Esta função aplia a expressão reguar a uma coluna de entrada (here Birth,
- Death), nivela a lista resultante, converte-a em uma lista de objetos, e
- finalmente converte o tipo do objeto da lista de String para inteiro. para
- mais informações sobre o que as diferentes partes do código fazer, veja em:
- - https://docs.python.org/2/howto/regex.html
- - http://stackoverflow.com/questions/11860476/how-to-unlist-a-python-list
- - http://pandas.pydata.org/pandas-docs/stable/generated/pandas.Series.html
-"""
-
-from functools import reduce
-
-def extractYear(v):
- return(pd.Series(reduce(lambda x, y: x + y, map(rx.findall, v), [])).astype(int))
-
-hre["BirthY"] = extractYear(hre.Birth)
-hre["DeathY"] = extractYear(hre.Death)
-
-# faça uma coluna infomrnado a idade estimada ("EstAge")
-hre["EstAge"] = hre.DeathY.astype(int) - hre.BirthY.astype(int)
-
-# gráfico de dispersão simples, sem linha de tendência, cor representa dinastia
-sns.lmplot("BirthY", "EstAge", data=hre, hue="Dynasty", fit_reg=False)
-
-# use o scipy para executar uma regrassão linear
-from scipy import stats
-(slope, intercept, rval, pval, stderr) = stats.linregress(hre.BirthY, hre.EstAge)
-# código fonte: http://wiki.scipy.org/Cookbook/LinearRegression
-
-# varifique o declive (slope)
-slope # 0.0057672618839073328
-
-# varifique o valor R^2:
-rval**2 # 0.020363950027333586
-
-# varifique o valor p-value
-pval # 0.34971812581498452
-
-# use o seaborn para fazer um gráfico de dispersão e traçar a linha de tendência de regrassão linear
-sns.lmplot("BirthY", "EstAge", data=hre)
-
-""" Para mais informações sobre o seaborn, veja
- - http://web.stanford.edu/~mwaskom/software/seaborn/
- - https://github.com/mwaskom/seaborn
- Para mais informações sobre o SciPy, veja
- - http://wiki.scipy.org/SciPy
- - http://wiki.scipy.org/Cookbook/
- Para ver uma versão da análise dos sagrados imperadores romanos usando R, consulte
- - http://github.com/e99n09/R-notes/blob/master/holy_roman_emperors_dates.R
-"""
-
-```
-
-Se você quiser saber mais, obtenha o Python para análise de dados de Wes McKinney. É um excelente recurso e usei-o como referência ao escrever este tutorial.
-
-Você também pode encontrar muitos tutoriais interativos de IPython sobre assuntos específicos de seus interesses, como Cam Davidson-Pilon's <a href="http://camdavidsonpilon.github.io/Probabilistic-Programming-and-Bayesian-Methods-for-Hackers/" Title="Programação Probabilística e Métodos Bayesianos para Hackers">Programação Probabilística e Métodos Bayesianos para Hackers</a>.
-
-Mais alguns módulos para pesquisar:
- - análise de texto e processamento de linguagem natural: nltk, http://www.nltk.org
- - análise de rede social: igraph, http://igraph.org/python/