Data Science com Python: Um overview ao PyData Stack

Gustavo Rodrigues
7 min readAug 14, 2020

--

com memes, gifs, zoeiras, e uma bela linguagem gamer

OK, você pode estar imaginando “Ah, mais um tutorial sobre ciência de dados usando Python”, e você está certo! Porém, vamos fugir um pouco do padrão de escrita, e chamar no xesq numa linguagem do mundo dos games e bem HUE BR.

O objetivo é que eu possa alcançar você que passa mais de 10 horas por dia aí jogando lol e continua no prata, e talvez fazer com que tu possa se interessar mais por essa maravilha que é o mundo de Data Science.

Arrasta pra cima e vem conhecer meu curso… ahwiehua pqp

VOM SIMBORA!

Esse guia não é recomendado pra iniciantes em programação Python. Entretanto, se você já tem familiaridade com outras linguagens de programação (e.g. C, C#, JS) conseguirá entender tranquilamente. Já que os conceitos de programação são (a maioria) os mesmos, só muda a sintaxe.

O Começo de um Sonho

A área de análise estatística e o meio científico como um todo teve, por muito tempo, o R como “linguagem oficial” de programação. Sabemos que esse tal de R é útil e tals, mas percebemos que ele é nitidamente de nicho.

Certo, e como pôde então, uma área (Data Science) crescer tanto utilizando apenas uma linguagem-mãe como o R? A resposta é simples: não foi apenas por conta do R.

Em projetos dentro das interwebs, é fato que se certa tecnologia, solução ou tendência não fala a língua do povão, não irá se consolidar muito. Dificilmente algo se mantém apenas vivendo na sua ilha (diferente do toplaner do teu time). Então, a galera da web moderna, meio que obriga que essas soluções sejam de fácil acesso, rápido aprendizado e de “facil entendimento”.

COMO FAÇO ISSO ENTÃO TIO?

É só usar Python. Até o próximo tutorial!

O porquê, junto e com acento

Como é necessário ter um maior e mais facilitado acesso aos códigos e dados, uma linguagem de propósito geral e que pessoas já dominam, como C (mais baixo nível e complexo), Java (acho que isso nem deveria estar aqui), PYTHON, etc…, se elencam como linguagens alternativas ao R.

Sabemos que C é muito poderoso, e que é mais rápido que o Python. Mas por ser um pouco mais baixo nível e de “codificação mais complexa” que o Python, fez com que esse último se sobressaísse como uma ótima alternativa ao R, e não o C.

A linguagem Python é de alto nível, comunidade a mil pelo Brasil, fácil de aprender, têm suporte a POO, é funcional, dinâmica, da rabo de arraia, sabe surfar, mata onça, twist carpado, ganhou 3 norte nordeste, 1 BBB… ta empolguei.

Um dos fatores que fez com que Python fosse escolhido amplamente, é pela sua facilidade de aprender a codificar (é um inglês estruturado) juntamente com o seu poder, já que ele se aproveita de bibiotelcas escritas em C/C++, mas vamos por partes como diria o Jack. Veja um exemplo:

Hackeando a NASA com Python

No exemplo acima, com apenas três linhas de código é possível hackear a NASA. Brincadeiras à parte, é extremamente simples de ler e entender um código Python. Mesmo se você não tem familiaridade com programação, consegue compreender o que está sendo feito simplesmente se já domina o inglês.

Como a área de Data Science demanda muita agilidade, um cientista de dados deve ser rápido também. Então, não teria como gastar 42 anos da sua vida para masterizar o C, ou escrever 86 classes em Java só pra saber a quantidade de pessoas que pickam Yasuo, ou que preferem Dust II do que Mirage. Com isso, uma linguagem que tu consiga escrever soluções rapidamente, mesmo se começar do zero, se torna muito valiosa.

Ok, voltando a falar dos fatores que contribuíram para que Python se tornasse uma ótima alternativa ao R, é que diferente do teu time tóxico na ranked, o Python tem uma grande comunidade OpenSource que contribui pro avanço e melhoria da mesma. Essas contribuições vão de vários pacotes e bibliotecas (muitas delas em C/C++ como mencionado) para desenvolvimento web, processamento de imagem, e até mesmo… advinha? Isso mesmo mãe Dináh, Data Science e Analytics.

Como Python tem essa grande comunidade, a busca por tutoriais para resolverem aquele bug que tu implementou, se torna mais fácil. Já que é só tacar o erro no tio Google que tem uma boa alma respondendo lá no outro titio stackoverflow.

Python também é cross platform, o que significa que, assim como Fortnite e Rocket League que rodam em várias plataformas, tu pode escrever um código nesse teu Linux (porque tu é hascker), rodar o código no PC do amiguinho com Windows duvidoso (pegou com o Perigo), ou rodar na tua outra máquina que é um macOS — Ok, se tu se encaixa nesse ultimo exemplo, só tenho um olhar pra ti.

Uffa, bastante coisa né? E isso foi apenas para introduzir o porquê tu deve estudar Python para construir soluções baseadas em dados.

Então ok, asas batendo, marcha de decolagem, turbinas e JÁ!!!

PyData

Esse termo nem é oficial na real, mas sim um título coloquial que se refere a coleção de pacotes e ferramentas comumente usados pela comunidade de Data science. Essas ferramentas se diferem um pouco, dependendo do material em que tu está estudando, então vamos nos ater apenas aos mais utilizados (que aparecem na maioria dos papers/tutoriais).

Começando por ele, NumPy:

Bom, que diabos seria esse tal de NumPy? A sigla é um acrônimo para Numerical Python, ou seja, fornece suporte para computação numérica em Python.

Não se assuste com esse termo aí, logo você entende que o NumPy faz todo o trabalho sujo pra você. Mas resumindo, ela contém todas as funções essênciais de álgebra linear. E também é mãe de outras bibliotecas.

A estrutura principal do NumPy é um carinha chamado ndarray. Que são vetores (álgebra linear), de n dimensões (por isso o nd — n-dimensional — sacou?), que se forem duas já vira uma matriz, e matriz quer dizer uma tabelinha tipo do Excel. Ta pegando a ideia né?

Pandas

O panda gigante (Ailuropoda melanoleuca), é um mamífero omnívoro da família… Não, não era sobre esses Pandas.

Pandas é uma biblioteca filha do NumPy, e é uma mãe pra nós quando vamos lidar com dados no Python. O ganha-pão dela é um carinha chamado DataFrame, e sério, grava esse nome. O DataFrame é uma estrutura que nos abstrai uma tabela do excel pra dentro do Python, e também é inspirada numa mesma estrutura lá do R, que inclusive tem mesmo nome. Essa estrutura possui colunas nomeadas e linhas numeradas, é só o dream!

Outra subestrutura do Pandas, é o Series. Essa estrutura é um vetor que representa uma coluna da tabela. Ou seja, um DataFrame é composto por vários Series. (Quase uma Netflix — nah, essa piada foi ruim porque se lê ˈsirēz).

SciPy

Aqui tem umas ferramentas necessárias pro método ciêntífico. Tem uns módulo pra aperfeiçoar o NumPy, como otimização de álgebra linear, polarização, otimização, interpolação, transformada de FOurier, funções especiais e os kara alhos a 4.

Matplotlib

Essa é a biblioteca (Matplotlib.Pyplot) reponsável por mostrar na tela os dados que tu tens. É uma daquelas bibliotecas que tem uma linguagem própria. Sério, é muito poderosa mas possui vários fatores pra dominá-la bem. Se você é hardcore, pode utilizá-la nua e crua, ou se é nutelinha, recomendo que utilize algo como Seaborn. Essa é uma filha do Matplotlib, que facilita a vida que é uma beleza, e tu constrói uns charts bem bonitos e de maneira mais prática. Se for ainda mais leite com pera, da pra ver algumas bibliotecas como plotly e Bokeh.

Scikit Learn

Essa é a biblioteca do famosinho machine learning. É uma filha do NumPy, SciPy e MatplotLib. Esse bicho tem uma galera de algoritmos eficientes pro seguimento de IA e Modelagem estatística, como regressões, árvore de decisão, clusterings. Tem uns negócio pronto de pré-processamento e validação cruzada.

É realmente uma mão na roda, mas saliento que não basta você apenas saber usá-la, mas buscar entender os algoritmos que se encontram por baixo dos panos também!

Deu tudo certo

Beleza, esse foi o primeiro tutorial que escrevi, e serviu mais para eu fixar os conhecimentos aprendidos até agora. Foi apenas uma visão geral sobre o Pydata Stack, mas o estudo mais aprofundado sobre cada uma delas estarão nas próximas matérias.

Com todas as brincadeiras à parte, espero que tu que já programa mas gasta muitas horas jogando, talvez se interesse mais por essa área que é altamente sexy, como diria o outro. E também espero que tu pare de ficar tantas horas apenas gastando tempo, pra amanhã ou depois, ou até mesmo no fim do dia, não ficar se culpando “puts, eu poderia ter estudado”. — Mas pode me add no lol aí, meu nick é: cr0d, na steam também XD.

“O futuro dependerá daquilo que fazemos no presente.” GANDHI, Mahatma

Vejo vocês numa outra hora. Um big beijo. FUI…

--

--

Gustavo Rodrigues

Computer Science Student; Machine Learning, Data Science and Cyber Security enthusiast; ~cr0d