Ebook Python v2

Fazer download em pdf ou txt
Fazer download em pdf ou txt
Você está na página 1de 702

www.datascienceacademy.com.

br
Python Fundamentos
Para Análise de Dados
www.datascienceacademy.com.br
Esse e-book não pode ser usado para fins comerciais, mas
pode ser distribuído livremente sob a licença Creative
Commons.

Pedimos apenas, a gentileza de citar a fonte, pois todo


este material é resultado de trabalho árduo de nossa
equipe.

Esta foi a forma que encontramos de contribuir com a


sociedade que deve ter a educação como prioridade.
www.datascienceacademy.com.br
Prezado(a) Aluno(a),
Seja Muito Bem-vindo(a) ao Curso:

Python
Python Fundamentos
Fundamentos para
Para Análise de
Análise de Dados

Dados

www.datascienceacademy.com.br
A Data Science Academy é um portal de ensino
online especializado em Big Data, Machine
Learning, Inteligência Artificial, Desenvolvimento
Data Science de Chatbots e tecnologias relacionadas. Nosso
Academy objetivo é fornecer aos alunos conteúdo de alto
nível por meio do uso de computador, tablet ou
smartphone, em qualquer lugar, a qualquer hora,
100% online e 100% em português.

Nossa
Escola

www.datascienceacademy.com.br
www.datascienceacademy.com.br
Data Science Academy - Localização
No Brasil e no Mundo.

www.datascienceacademy.com.br
Treinamentos Gratuitos DSA
Acreditamos que aprender não para nunca.

Big Data
Fundamentos 2.0

Introdução à
Ciência de Dados 2.0

Python Fundamentos
Para Análise de Dados
Microsoft Power BI
Para Data Science

Treinamentos preparados especialmente


para Você!

www.datascienceacademy.com.br
Python Fundamentos Para Análise de Dados

Cap01 - Introdução
Cap02 - Variáveis, Tipos e Estruturas de Dados
Cap03 - Loops, Condicionais, Métodos, Funções, Módulos e
Pacotes
Cap04 - Tratamento de Arquivos
Cap05 - Orientação a Objetos
Conteúdo do Cap06 - Banco de Dados
Curso Cap07 - Desafio DSA
Cap08 - Módulos Python Para Análise de Dados
Cap09 - Introdução à Análise de Dados com Python
Cap10 - Introdução ao TensorFlow
Cap11 - Introdução a Machine Learning com Python
Cap12 - Bônus - Introdução a Deep Learning
Cap13 - Desenvolvimento Web
Cap14 - Introdução ao Web Scraping
Cap15 - Avaliação Final e Certificado de Conclusão

www.datascienceacademy.com.br
Python Fundamentos Para Análise de Dados
Conteúdo do Curso

Variáveis, Tipos Tratamento de


e Estruturas de Arquivos
Dados

1 2 3 4 5

Loops,
Introdução Condicionais, Orientação a
Métodos, Funções, Objetos
Módulos e Pacotes

www.datascienceacademy.com.br
Python Fundamentos Para Análise de Dados
Conteúdo do Curso

Introdução à
Desafio DSA Análise de
Dados com
Python

6 7 8 9 10

Introdução ao
Banco de Módulos
TensorFlow
Dados Python para
Análise de
Dados

www.datascienceacademy.com.br
Python Fundamentos Para Análise de Dados
Conteúdo do Curso

Introdução ao Web
Bônus -
Scraping
Introdução a
Deep Learning

11 12 13 14 15

Introdução a Avaliação Final


Desenvolvimento
Machine
Web
Learning com
Python

www.datascienceacademy.com.br
Avaliação Final e Certificado de Conclusão

Category 4

Category 3

Category 2

Category 1

0 1 2 3 4 5 6

Questões Tentativas Aproveitamento


50 3 70%

www.datascienceacademy.com.br
O Que Esperamos de Você!
Sua Abordagem no curso.

2 a 4 horas
de dedicação por semana.

Divirta-se Leitura do Material


Comunique-se, aprenda E-books e material
e divirta-se em nossa complementar!
Comunidade.

Bibliografia Interação
Leia a bibliografia
adicional, acesse os links Utilize nossas Apps e interaja
úteis e realize os quizzes na rede com outros alunos no
ao final dos capítulos. fórum exclusivo e na timeline
da Comunidade.

www.datascienceacademy.com.br
Suporte

Em todos os nossos cursos, gratuitos e pagos,


o aluno recebe suporte em até 24 horas,
incluindo finais de semana e feriados.

Seja aprovado,
Utilize um dos nossos canais de comunicação e
obtenha suporte sempre que precisar!
E receba o e-book com todo o
Nossa equipe é obcecada
conteúdo do curso pelo sucesso dos
nossos alunos!
de forma gratuita
Oferecemos mais do que cursos online.
Oferecemos uma experiência de aprendizagem!

www.datascienceacademy.com.br
E-book

Seja aprovado,
E receba o e-book com todo o
conteúdo do curso
de forma gratuita.

www.datascienceacademy.com.br
Compartilhe seu Certificado de Conclusão

Seja aprovado,
E receba o e-book com todo o
conteúdo do curso
de forma gratuita

www.datascienceacademy.com.br
Apps
Apps Gratuitas Gratuitas
par IOS e Android para IOS e Android

Baixe agora mesmo.

www.datascienceacademy.com.br 17
Curta Nossas Páginas nas Redes Sociais
E fique sabendo….
das novidades em Data Science, Big Data, Inteligência
Artificial e muito mais.

1 www.facebook.com/dsacademybr

2 twitter.com/dsacademybr

3 www.linkedin.com/company/data-science-academy

www.datascienceacademy.com.br
A Inteligência
Python
Está
nas Máquinas oupara
Fundamentos nos
Desenvolvedores?
Análise de Dados

www.datascienceacademy.com.br
www.datascienceacademy.com.br
A Inteligência Está nas Máquinas ou nos Desenvolvedores?

www.datascienceacademy.com.br
www.datascienceacademy.com.br
A Inteligência Está nas Máquinas ou nos Desenvolvedores?

A parte inteligente dos


smartphones não está no chip de
computador e sim nas pessoas
que o programaram.

www.datascienceacademy.com.br
A Inteligência Está nas Máquinas ou nos Desenvolvedores?

www.datascienceacademy.com.br
O Que é
Python
Programação
Fundamentosde para

Computadores?
Análise de Dados

www.datascienceacademy.com.br
O que é Programação?

www.datascienceacademy.com.br
O Que é Programação de Computadores?

Programação é o processo de analisar


uma tarefa, dividi-la em pedaços ou
etapas e escrever uma sequência de
instruções que o computador possa
entender e executar.

www.datascienceacademy.com.br
www.datascienceacademy.com.br
www.datascienceacademy.com.br
www.datascienceacademy.com.br
Conhecendo
Python
a
Linguagem Python
Fundamentos para
Análise de Dados

www.datascienceacademy.com.br
O que é a Linguagem Python?

www.datascienceacademy.com.br
Conhecendo a Linguagem Python

www.datascienceacademy.com.br
Conhecendo a Linguagem Python

www.datascienceacademy.com.br
Conhecendo a Linguagem Python

Lançada em 1991, na Holanda, por Guido Van


Rossum

Linguagem interpretada

Orientada a Objetos

Portável

Comunidade Ativa

www.datascienceacademy.com.br
Conhecendo a Linguagem Python

www.python.org

www.datascienceacademy.com.br
Por Que Cientistas de
Python
Dados Escolhem
Fundamentos para
Python?
Análise de Dados

www.datascienceacademy.com.br
Por Que Cientistas de Dados Escolhem Python?

www.datascienceacademy.com.br
Por Que Cientistas de Dados Escolhem Python?

Python se tornou uma


linguagem de programação
que permite criar um canal
direto para a análise de dados.

www.datascienceacademy.com.br
Por Que Cientistas de Dados Escolhem Python?

• Grande Comunidade
• Bibliotecas de Análise de Dados
• Jupyter Notebook
• Facilidade de Aprender
• Escalabilidade e Portabilidade

www.datascienceacademy.com.br
Por Que Cientistas de Dados Escolhem Python?

www.datascienceacademy.com.br
Por Que Cientistas de Dados Escolhem Python?

PyData Stack

www.datascienceacademy.com.br
Por Que Cientistas de Dados Escolhem Python?

Empresas que usam


Python

www.datascienceacademy.com.br
Por Que Cientistas de Dados Escolhem Python?

www.datascienceacademy.com.br
Por Que Cientistas de Dados Escolhem Python?

www.datascienceacademy.com.br
O Incrível
Python
Crescimento
Fundamentos da
para
Linguagem Python
Análise de Dados

www.datascienceacademy.com.br
O Incrível Crescimento da Linguagem Python

www.datascienceacademy.com.br
O Incrível Crescimento da Linguagem Python

Nenhuma linguagem de
programação cresceu tanto
quanto a linguagem Python
nos últimos 6 anos.

www.datascienceacademy.com.br
O Incrível Crescimento da Linguagem Python

E Python é a linguagem de
programação que mais deve
crescer nos próximos anos.

www.datascienceacademy.com.br
O Incrível Crescimento da Linguagem Python

A linguagem Python também se


destacam em relação a várias
outras linguagens (e este gráfico
não inclui o TensorFlow, a principal
biblioteca para construção de
modelos de Machine Learning,
amplamente usada com Python)

www.datascienceacademy.com.br
O Incrível Crescimento da Linguagem Python

E nos países emergentes


(como o Brasil), Python
também tem a maior projeção
de crescimento entre as
principais linguagens de
programação)

www.datascienceacademy.com.br
O Incrível Crescimento da Linguagem Python

Aprender programação é uma excelente


decisão na sua carreira e aprender Python
pode ser um excelente caminho!

www.datascienceacademy.com.br
Variáveis,Python
Tipos e
Estruturas de Dados
Fundamentos para
Análise de Dados

www.datascienceacademy.com.br
Variáveis, Tipos e Estruturas de Dados

O que estudaremos neste capítulo?

• Python Fundamentos
• Números e Operações Matemáticas
• Variáveis e Operadores
• Strings
• Estruturas de Dados
o Listas
o Dicionários
o Tuplas

www.datascienceacademy.com.br
Variáveis, Tipos e Estruturas de Dados

Quiz Exercícios Lab01

www.datascienceacademy.com.br
Python Fundamentos
Python
Fundamentos para
Análise de Dados

www.datascienceacademy.com.br
Python Fundamentos

Antes de Começar!

www.datascienceacademy.com.br
Python Fundamentos

Python é uma linguagem interpretada, clara,


de fácil leitura e bastante expressiva.

www.datascienceacademy.com.br
Python Fundamentos

Código fonte Byte code Runtime

m.py m.pyc PVM

www.datascienceacademy.com.br
Python Fundamentos

Basicamente, existem 3 modos de executar programas em Python:

• Modo shell
• Modo script (arquivos com extensão .py)
• Modo interativo (Jupyer Notebook)

www.datascienceacademy.com.br
Python Fundamentos

Indentação é importante (1 tab ou 4 spaces)

www.datascienceacademy.com.br
Python Fundamentos

Indentação faz
parte da sintaxe
em Python

www.datascienceacademy.com.br
Python Fundamentos

Seja consistente.
Use tab ou espaços.
Não misture os 2.

www.datascienceacademy.com.br
Python Fundamentos

Comentários em Python

Começam com o caracter # ou 3 aspas duplas “””...”””

# Isso é um comentário em um única linha

”””
Isso é um comentário
em mais de uma linha
”””

www.datascienceacademy.com.br
Python Fundamentos

Dicas:
• Clareza é importante. Mantenha seu código limpo e organizado.
• Código esparso é melhor que código denso.
• Sempre documente seu código.
• Siga os padrões não para criar complexidade, mas para manter a
regra.
• Erros nunca serão silenciosos, a menos que propositalmente.
• Simples é melhor que complexo e complexo é melhor que
complicado.
• Não se sinta obrigado a criar classes sem uma boa razão.

www.datascienceacademy.com.br
Python Fundamentos

Retorne a este vídeo sempre


que tiver dúvidas sobre estas
dicas.

www.datascienceacademy.com.br
Números e
Python
Operações
Fundamentos para
Matemáticas
Análise de Dados

www.datascienceacademy.com.br
Números e Operações Matemáticas

Tópicos deste vídeo

1) Tipos de números em Python


2) Funções e operações com números
3) Aritmética
4) Operadores

www.datascienceacademy.com.br
Números e Operações Matemáticas

Python possui 2 tipos de números principais:

int → números inteiros, positivos ou negativos. Ex: -7 e 7

float → números fracionários, positivos ou negativos. Ex: -7.1 e


7.1

www.datascienceacademy.com.br
Números e Operações Matemáticas

Podemos usar a função type(), para saber qual é o tipo de um número

www.datascienceacademy.com.br
Números e Operações Matemáticas

Podemos usar as funções int() e float()


para converter números.

www.datascienceacademy.com.br
Números e Operações Matemáticas

www.datascienceacademy.com.br
Números e Operações Matemáticas

Funções Built-
in

https://docs.python.org/3/library/index.html

www.datascienceacademy.com.br
Números e Operações Matemáticas

Operações com
Números
Operador Significado Exemplo
+ Soma 2+2→4
- Subtração 3 – 2→ 1
* Multiplicação 2*3→6
/ Divisão 10 / 2 → 5
% Módulo 5%2→1
** Potência 4 ** 2 → 16
int() Converte para inteiro int(3.2) → 3
float() Converte para float float(2) → 2.0

www.datascienceacademy.com.br
Números e Operações Matemáticas

Operações Relacionais

Operador Significado
== Igualdade / equivalência
!= Desigualdade / Inequivalência
> Maior que
< Menor que
>= Maior que ou igual a
<= Menor que ou igual a

www.datascienceacademy.com.br
Variáveis e
Python
Operadores
Fundamentos para
Análise de Dados

www.datascienceacademy.com.br
Variáveis e Operadores

As variáveis são usadas em nosso código Python para


armazenar valores que queremos usar mais tarde.

São espaços em memória que armazenam valores.

www.datascienceacademy.com.br
Variáveis e Operadores

Por exemplo, nós podemos armazenar o valor 10 na variável b.

b = 10

O sinal de igual atribui o valor à direita (10) à variável do lado


esquerdo (b). Você pode sobrescrever uma variável com um
novo valor sempre que quiser. A variável assumirá o novo valor.

www.datascienceacademy.com.br
Variáveis e Operadores

A função print() em Python irá imprimir valores na tela (teremos


um módulo inteiro sobre funções). Por exemplo:

print(10) → imprime na tela o valor 10


print(b) → imprime na tela o valor da variável b

Tudo o que é impresso aparece na tela de saída do Python.

www.datascienceacademy.com.br
Variáveis e Operadores

Existem algumas regras que devem ser seguidas ao definir nomes de variáveis:

1. Os nomes das variáveis não podem começar com um número.


2. Não pode haver espaços no nome; utilize _ em vez disso.
3. Não é possível usar qualquer um desses símbolos: '", <> / | \ () @ # $% ^ & * ~ -
+!

O item 3 é considerado uma boa prática de programação (PEP8). Visite os sites


abaixo para mais informações:

https://www.python.org/dev
https://docs.python.org/devguide

www.datascienceacademy.com.br
Variáveis e Operadores

Não se pode usar palavras reservadas como nome de


variável
False True as
class def elif
finally from if
is nonlocal Or
return while yield
None and Assert
continue del Else
for global import
lambda not Pass
try with break
except in raise

www.datascienceacademy.com.br
Variáveis e Operadores

Operadores

www.datascienceacademy.com.br
Variáveis e Operadores

Operadores Aritméticos

Operador Significado Exemplo


+ Soma 2+2→4
- Subtração 3 – 2→ 1
* Multiplicação 2*3→6
/ Divisão 10 / 2 → 5
% Módulo 5%2→1
** Potência 4 ** 2 → 16
int() Converte para inteiro int(3.2) → 3
float() Converte para float float(2) → 2.0

www.datascienceacademy.com.br
Variáveis e Operadores

Operadores Relacionais

Operador Significado
== Igualdade / equivalência
!= Desigualdade / Inequivalência
> Maior que
< Menor que
>= Maior que ou igual a
<= Menor que ou igual a

www.datascienceacademy.com.br
Variáveis e Operadores

Operadores de
Atribuição
Operado Significado Exemplo
r
= Atribuição z = 10
+= Soma z += 10 (equivalente a z = z +
10)
-= Subtração z -= 10 (equivalente a z = z – 10)
*= Multiplicação z *= 10 (equivalente a z = z * 10)
/= Divisão z /= 10 (equivalente a z = z / 10)
%= Módulo z %= 10 (equivalente a z = z %
10)
**= Potência z **= 10 (equivalente a z = z **
10)
//= Divisão inteira z //= 10 (equivalente a z = z //
www.datascienceacademy.com.br
10)
Variáveis e Operadores

Operadores Lógicos

Operado Significado Exemplo


r
and Se ambos operadores (x and y) é True
forem True, retorna True
or Se um dos operadores (x or y) é True
for True, retorna True
Not Usado para reverter o Not (x and y) é False
estado da lógica

www.datascienceacademy.com.br
Strings para
Python
Fundamentos
Análise de Dados

www.datascienceacademy.com.br
Strings

Tópicos deste vídeo:

1) O que são strings


2) Criando, indexando e operando strings

www.datascienceacademy.com.br
Strings

Strings são usadas em Python para gravar informações em


formato de texto, como nomes por exemplo. Strings em
Python são na verdade uma sequência de caracteres, o que
significa, basicamente, que Python mantém o controle de cada
elemento da sequência.

www.datascienceacademy.com.br
Strings

Python entende a string "Olá”, como sendo uma sequência de


letras em uma ordem específica. Isso significa que você será
capaz de usar a indexação para obter um caracter específico
(como a primeira letra ou a última letra).

www.datascienceacademy.com.br
Strings

Strings – sequência imutável de caracteres ou apenas 1


caracter
“Essa é uma string”
“a”

www.datascienceacademy.com.br
Strings

Indexando Strings

Já sabemos que Strings são uma sequência. Isso significa que


Python pode usar índices para chamar partes da sequência.
Vamos aprender como isso funciona.

www.datascienceacademy.com.br
Strings

Indexando Strings

Em Python, usamos colchetes [] para representar o índice de


um objeto.

→ Em Python, a indexação começa por 0.

www.datascienceacademy.com.br
Strings

Em Python, a indexação começa por 0.

www.datascienceacademy.com.br
Strings

Indexando Strings

Por exemplo, podemos criar a string:

texto = ”Python e Análise de Dados”

texto[0] = P
texto[1] = y
texto[2] = t

www.datascienceacademy.com.br
Strings

É importante ressaltar que as strings têm uma importante


propriedade conhecida como imutabilidade. Isto significa que
uma vez que é criada uma string, os elementos dentro dela
não podem ser substituídos ou alterados.

www.datascienceacademy.com.br
Strings

Funções Built-in de Strings

Python é uma linguagem orientada a objeto, sendo assim as


estruturas de dados possuem atributos (propriedades) e
métodos (rotinas associadas às propriedades). Tanto os
atributos quanto os métodos são acessados usando ponto (.).

www.datascienceacademy.com.br
Strings

Funções Built-in de Strings

Os métodos estão sob a forma:

objeto.atributo
objeto.método()
objeto.método(parâmetros)

www.datascienceacademy.com.br
Strings

Funções Built-in de Strings

objeto.método (parâmetros)

Parâmetros são argumentos extras, que podemos passar para


o método. Não se preocupe se os detalhes não fazem sentido
100% agora. Mais tarde, estaremos criando nossos próprios
métodos.

www.datascienceacademy.com.br
Estruturas de Dados
Python
Listas
Fundamentos para
Análise de Dados

www.datascienceacademy.com.br
Estruturas de Dados - Listas

Neste vídeo, você vai aprender:

1) O que são listas


2) Indexação e slice de listas
3) Métodos básicos de lista
4) Listas aninhadas

www.datascienceacademy.com.br
Estruturas de Dados - Listas

Anteriormente, quando discutimos Strings, introduzimos o


conceito de uma sequência em Python. As listas podem ser
consideradas a versão geral de uma sequência em Python. Ao
contrário de Strings, as listas são mutáveis, ou seja, os
elementos dentro de uma lista podem ser alterados.

www.datascienceacademy.com.br
Estruturas de Dados - Listas

As listas são construídas com o uso de colchetes [] e


vírgulas separando cada elemento da lista.

lista = [item1, item2, ..., itemz]

www.datascienceacademy.com.br
Estruturas de Dados - Listas

Se você estiver familiarizado com outra linguagem de


programação, você pode traçar paralelos entre matrizes em outras
linguagens e listas em Python. Listas em Python no entanto,
tendem a ser mais flexíveis do que as matrizes em outras
linguagens por dois bons motivos:

1. Listas não têm tamanho fixo (o que significa que não


precisamos especificar quão grande uma lista será)

2. Listas não têm restrição de tipo fixo

www.datascienceacademy.com.br
Estruturas de Dados - Listas

Uma grande característica de estruturas de dados em


Python é que elas suportam aninhamento. Isto significa
que podemos usar estruturas de dados dentro de
estruturas de dados.

www.datascienceacademy.com.br
Estruturas de Dados
Python
Dicionários
Fundamentos para
Análise de Dados

www.datascienceacademy.com.br
Estruturas de Dados - Dicionários

Neste vídeo falaremos sobre:

1) O que são dicionários


2) Acessando itens de um dicionário
3) Dicionários aninhados
4) Métodos de Dicionários

www.datascienceacademy.com.br
Estruturas de Dados - Dicionários

Até aqui falamos bastante sobre sequências em Python, mas


agora vamos mudar um pouco o foco e aprender sobre
mapeamentos em Python. Se você estiver familiarizado com
outras linguagens de programação, pode imaginar os
dicionários como tabelas de hash (hash tables).

Os dicionários são construídos com o uso de chaves {} e


vírgulas separando cada elemento do dicionário

dict = {k1:v1, k2:v2, ..., kn:vn}

www.datascienceacademy.com.br
Estruturas de Dados - Dicionários

Então, o que são mapeamentos?

Mapeamentos são uma coleção de objetos que são


armazenados por uma chave, ao contrário de uma
sequência de objetos armazenados por sua posição relativa.

www.datascienceacademy.com.br
Estruturas de Dados - Dicionários

Então, o que são mapeamentos?

Um dicionário Python consiste de uma chave e, em seguida,


um valor associado.

Esse valor pode ser quase qualquer objeto Python.

www.datascienceacademy.com.br
Estruturas de Dados - Dicionários

Dicionários – mapeamento de chaves e valores

{chave1: valor1, chave2: valor2}

www.datascienceacademy.com.br
Estruturas de Dados
Python
Tuplas para
Fundamentos
Análise de Dados

www.datascienceacademy.com.br
Estruturas de Dados - Tuplas

Neste vídeo, veremos:

1) O que são tuplas


2) Métodos básicos de tuplas
3) Imutabilidade
4) Quando usar tuplas

www.datascienceacademy.com.br
Estruturas de Dados - Tuplas

Em Python, tuplas são muito semelhantes às listas, no entanto,


ao contrário de listas, tuplas são imutáveis, o que significa que
não podem ser alteradas. Você usaria tuplas para apresentar
dados que não devem ser alterados, como os dias da semana
ou datas em um calendário.

As tuplas são construídas com o uso de parênteses () e


vírgulas separando cada elemento da tupla.

tupla = (item1, item2,..., itemz)

www.datascienceacademy.com.br
Estruturas de Dados - Tuplas

"Por que se preocupar usando tuplas, uma vez que trata-se de


um objeto com limitações e um número menor de métodos
disponíveis?"

www.datascienceacademy.com.br
Estruturas de Dados - Tuplas

Tuplas não são utilizadas com frequência, como listas por


exemplo, mas são usadas quando é necessário imutabilidade.
Se em seu programa você precisa ter certeza de que os dados
não sofrerão mudança, então tupla pode ser a sua solução. Ela
fornece uma fonte conveniente de integridade de dados.

www.datascienceacademy.com.br
Resumo
Python
Fundamentos para
Análise de Dados

www.datascienceacademy.com.br
Resumo

Tipo de Objeto Categoria Mutável?


Números Numérico Não
Strings Sequência Não
Listas Sequência Sim
Dicionários Mapeamento Sim
Tuplas Sequência Não

www.datascienceacademy.com.br
Resumo

Operadores Aritméticos

Operador Significado Exemplo


+ Soma 2+2→4
- Subtração 3 – 2→ 1
* Multiplicação 2*3→6
/ Divisão 10 / 2 → 5
% Módulo 5%2→1
** Potência 4 ** 2 → 16
int() Converte para inteiro int(3.2) → 3
float() Converte para float float(2) → 2.0

www.datascienceacademy.com.br
Resumo

Operadores Relacionais

Operador Significado
== Igualdade / equivalência
!= Desigualdade / Inequivalência
> Maior que
< Menor que
>= Maior que ou igual a
<= Menor que ou igual a

www.datascienceacademy.com.br
Resumo

Operadores de
Atribuição
Operado Significado Exemplo
r
= Atribuição z = 10
+= Soma z += 10 (equivalente a z = z +
10)
-= Subtração z -= 10 (equivalente a z = z – 10)
*= Multiplicação z *= 10 (equivalente a z = z * 10)
/= Divisão z /= 10 (equivalente a z = z / 10)
%= Módulo z %= 10 (equivalente a z = z %
10)
**= Potência z **= 10 (equivalente a z = z **
10)
//= Divisão inteira z //= 10 (equivalente a z = z //
www.datascienceacademy.com.br
10)
Resumo

Operadores Lógicos

Operado Significado Exemplo


r
and Se ambos operadores (x and y) é True
forem True, retorna True
or Se um dos operadores (x or y) é True
for True, retorna True
Not Usado para reverter o Not (x and y) é False
estado da lógica

www.datascienceacademy.com.br
Resumo

www.datascienceacademy.com.br
Resumo

Você vai perceber, que o conhecimento adquirido


neste capítulo, será utilizado em todos os demais
capítulos e quando trabalharmos com Análise de
Dados.

www.datascienceacademy.com.br
Resumo

Agora, faça os exercícios, compare suas respostas com o


gabarito fornecido, faça o quiz, acesse a seção de referências
e links úteis com material complementar e encontre comigo
no Laboratório01, quando vamos trabalhar com um game em
Python.

www.datascienceacademy.com.br
Loops, Condicionais,
Python

Métodos e Funções
Fundamentos para
Análise de Dados

www.datascienceacademy.com.br
Loops, Condicionais, Métodos e Funções

O que estudaremos neste capítulo?

• Condicionais If/Else/Elif
• Estruturas de Repetição
• Métodos
• Funções
• Outras Operações

www.datascienceacademy.com.br
Python
Condicionais
Fundamentos para
Análise de Dados

www.datascienceacademy.com.br
Condicionais

O condicional if nos permite dizer ao computador para executar


ações com base em um determinado conjunto de resultados.

Verbalmente, podemos imaginar que estamos dizendo ao


computador:

"Ei, caso isso aconteça, execute esta ação."

www.datascienceacademy.com.br
Condicionais

If (expressão 1):
print(“comando executado caso a expressão 1 seja
Verdadeira”)
else:
print(“comando executado caso as expressão 1 seja Falsa”)

www.datascienceacademy.com.br
Condicionais

O Elif substitui a necessidade de criar várias estruturas de if...else aninhadas.

If (expressão 1):
print(“comando executado caso a expressão 1 seja Verdadeira”)
elif (expressão 2):
print(“comando executado caso a expressão 1 seja Falsa e expressão 2 seja Verdadeira”)
else:
print(“comando executado caso as expressões 1 e 2 sejam Falsas”)

www.datascienceacademy.com.br
Condicionais

Indentação

É importante ter uma boa compreensão de como


funciona o recuo em Python (indentação) para
manter a estrutura em ordem no seu código.

www.datascienceacademy.com.br
Estruturas de
Python
Fundamentos para
Repetição Loop
Análise For
de Dados

www.datascienceacademy.com.br
Loop For

For

Valida cada item em uma série de valores

for item in série-de-items:


Executar comandos

www.datascienceacademy.com.br
Loop For

For

Valida cada item em uma série de valores

for item in série-de-items:


if item > 0:
Executar comandos

www.datascienceacademy.com.br
Loop For

For

Valida cada item em uma série de valores

for item in série-de-


items:
Executar comandos

www.datascienceacademy.com.br
Loop For

For

Podemos utilizar o loop for em objetos sequenciais como:

• strings
• listas
• tuplas
• elementos de dicionários
• arquivos

www.datascienceacademy.com.br
Estruturas de
Python
Fundamentos para
Repetição Loop
Análise While
de Dados

www.datascienceacademy.com.br
Loop While

O loop while em Python é uma das formas mais comuns para executar
iteração.

A instrução while será executada repetidamente, seja uma única instrução


ou grupo de instruções, desde que uma condição seja verdadeira.

www.datascienceacademy.com.br
Loop While

Valida cada item em uma série de valores

while (expressão1):
print(“comando executado caso a expressão1 seja Verdadeira”)

www.datascienceacademy.com.br
Estruturas de
Repetição Range

www.datascienceacademy.com.br
Range

A função range() nos permite criar uma lista de números em um


intervalo específico.

www.datascienceacademy.com.br
Range

A função range() tem o seguinte formato:

range([start], [stop], [step])

[start] – número que inicia a sequência


[stop] – número que encerra a sequência (não é incluído na
sequência)
[step] – diferença entre cada número da sequência

www.datascienceacademy.com.br
Range

range(50, 101, 2)

www.datascienceacademy.com.br
Python
Métodos
Fundamentos para
Análise de Dados

www.datascienceacademy.com.br
Métodos

Nós já vimos alguns exemplos de métodos quando


aprendemos sobre Estruturas de Dados em Python.

Os métodos são essencialmente funções incorporadas em


objetos.

www.datascienceacademy.com.br
Métodos

Mais tarde, vamos aprender sobre como criar nossos próprios


métodos que utilizam Programação Orientada a Objetos (OOP) e
classes.

www.datascienceacademy.com.br
Métodos

Métodos permitem executar ações específicas no objeto e


podem também ter argumentos, exatamente como uma
função.

www.datascienceacademy.com.br
Métodos

Os métodos são executados sob a forma:

objeto.método (arg1, arg2, etc ...)

www.datascienceacademy.com.br
Métodos

Com Jupyter Notebook podemos ver rapidamente todos os


métodos possíveis para um objeto, usando a tecla TAB. Por
exemplo, os métodos para o objeto lista são:
• append
• count
• extend
• insert
• pop
• remove
• reverse
• sort

www.datascienceacademy.com.br
Python
Funções
Fundamentos para
Análise de Dados

www.datascienceacademy.com.br
Funções

Vamos agora estudar o que é uma função em Python. As


Funções serão um dos nossos principais recursos, quando
construírmos quantidades cada vez maiores de código para
resolver problemas.

Então, o que é uma função?

www.datascienceacademy.com.br
Funções

Função é um dispositivo que agrupa um conjunto de


instruções para que elas possam ser executadas mais de uma
vez. Funções também permitem especificar os parâmetros que
podem servir como entrada para as funções.

www.datascienceacademy.com.br
Funções

Em um nível mais fundamental, a construção de funções nos


permite reutilizar código, sem ter que escrevê-lo novamente.
Nas aulas de Strings, utilizamos a função len() para obter o
comprimento de uma String. Com funções, escrevemos o
código uma única vez e repetimos a mesma instrução, fazendo
a chamada à função, quantas vezes forem necessárias.

www.datascienceacademy.com.br
Funções

O formato geral de uma função é:

def nome da função(arg1, arg2):

''' Aqui vão os comentários, documentando sua função


'''

<Aqui vai seu código>


<Retorno desejado pela função>

www.datascienceacademy.com.br
Funções

E por que Função é importante?

Funções em Python são uma forma de escrever a sua lógica em


único pacote e utilizá-la em diferentes lugares no seu código e
quantas vezes quiser.

www.datascienceacademy.com.br
Funções

Entrada Saíd
a
Argumentos Resultado
Funçã
o
Variáveis Globais Variáveis Globais
Variáveis
Locais
Arquivos / Arquivos /
Streams de Dados Streams de Dados

Outras Funções

www.datascienceacademy.com.br
Python
Expressões Lambda
Fundamentos para
Análise de Dados

www.datascienceacademy.com.br
Expressões Lambda

Uma das características mais úteis em Python (e para


iniciantes, um pouco confuso) é a expressão lambda.
Expressões lambda nos permitem criar funções "anônimas".
Isto significa que podemos fazer rapidamente funções ad-hoc
sem a necessidade de definir uma função usando a palavra
reservada def.

www.datascienceacademy.com.br
Expressões Lambda

Objetos de função desenvolvidos executando expressões


lambda funcionam exatamente da mesma forma como
aqueles criados e atribuídos pela palavra reservada def. Mas
há algumas diferenças fundamentais que fazem lambda útil
em funções especializadas:

• O corpo do lambda é uma única expressão, não um bloco de instruções.


• O corpo do lambda é semelhante a uma instrução de retorno do corpo
def.

www.datascienceacademy.com.br
Expressões Lambda

Expressões lambda realmente são úteis, quando usadas em


conjunto com as funções map(), filter() e reduce().

www.datascienceacademy.com.br
Expressões Lambda

Expressões lambda são usadas para criar funções simples.

São também chamadas funções in-line ou apenas funções


anônimas.

www.datascienceacademy.com.br
Expressões Lambda

lambda x: x**2.

www.datascienceacademy.com.br
Expressões Lambda

Diferença entre def e lambda para criar funções:

www.datascienceacademy.com.br
Expressões Lambda

Diferença entre def e lambda para criar funções:

def → cria um objeto e atribui um nome a ele (nome da


função)

www.datascienceacademy.com.br
Expressões Lambda

Diferença entre def e lambda para criar funções:

def → cria um objeto e atribui um nome a ele (nome da


função)

lambda → cria um objeto, mas o retorna como um resultado


em tempo de execução

www.datascienceacademy.com.br
Tratamento de
Arquivos, Módulos,
Python
Fundamentos para
Pacotes e Funções
Análise de Dados

Built-in

www.datascienceacademy.com.br
Tratamento de Arquivos, Módulos, Pacotes e Funções Built-in

O que estudaremos neste capítulo?

• Manipulação de Arquivos em Python


• Módulos e Pacotes
• PyPi e Instalação de Pacotes
• Pacotes Math e Datetime
• Funções Built-in Map, Reduce, Filter, Zip e Enumerate
• List Comprehension
• Erros e Exceções

www.datascienceacademy.com.br
Python
Arquivos
Fundamentos para
Análise de Dados

www.datascienceacademy.com.br
Arquivos

Python usa objetos de arquivo para interagir com arquivos em


seu computador. Esses objetos de arquivo podem ser qualquer
tipo de arquivo como um arquivo de áudio, um arquivo de
texto, e-mails, documentos do Excel, etc.

www.datascienceacademy.com.br
Arquivos

Nota: Você provavelmente terá que instalar algumas bibliotecas ou


módulos para interagir com os vários tipos de arquivos, mas eles
estão facilmente disponíveis.

Por exemplo: Python oferece o pacote csv para manipulação


arquivos csv.

www.datascienceacademy.com.br
Arquivos

Método Utilização
open() Usada para abrir o arquivo
read() Leitura do arquivo
write() Gravação no arquivo
seek() Retorna para o início do arquivo
readlines() Retorna a lista de linhas do arquivo
close() Fecha o arquivo

www.datascienceacademy.com.br
Python
Módulos e Pacotes
Fundamentos para
Análise de Dados

www.datascienceacademy.com.br
Módulos e Pacotes

Se você sair do interpretador Python e entrar novamente,


todas as definições que você fez (funções e variáveis) são
perdidas.

www.datascienceacademy.com.br
Módulos e Pacotes

Portanto, se você quiser escrever um programa um pouco


mais longo, você precisa usar um editor de texto ou uma IDE
para escrever seu código, salvar e então executar o arquivo no
interpretador Python.

www.datascienceacademy.com.br
Módulos e Pacotes

Isto é conhecido como a criação de um script.

www.datascienceacademy.com.br
Módulos e Pacotes

À medida que seu programa fica maior, você pode querer


dividi-lo em vários módulos para facilitar a manutenção.

www.datascienceacademy.com.br
Módulos e Pacotes

Você também pode querer usar uma função que você


escreveu, em vários programas sem ter que copiar sua
definição em cada programa.

www.datascienceacademy.com.br
Módulos e Pacotes

Para suportar isso, Python tem uma maneira de colocar tais


definições em um arquivo e usá-las em um script ou em uma
instância interativa do interpretador (como no Jupyter
Notebook).

Esse arquivo é chamado de módulo

www.datascienceacademy.com.br
Módulos e Pacotes

Módulos em Python são simplesmente arquivos Python com a


extensão .py, que implementam um conjunto de funções.
Importamos o módulo em nosso script Python, usando o
comando import:

import math

www.datascienceacademy.com.br
Módulos e Pacotes

A primeira vez que um módulo é carregado em um script Python,


ele é inicializado e fica disponível para uso.

Você precisa importar um módulo apenas uma vez no seu código.

www.datascienceacademy.com.br
Módulos e Pacotes

Escrever módulos Python é muito simples. Para criar um módulo


de sua preferência, basta criar um novo arquivo .py com o nome
do módulo e, em seguida, importá-lo usando o nome do arquivo
Python (sem a extensão .py), utilizando o comando de
importação.

meu_modulo.py

import ”meu_modulo”

www.datascienceacademy.com.br
Módulos e Pacotes

Também é possível importar funções específicas de um


módulo

from math import sqrt

www.datascienceacademy.com.br
Módulos e Pacotes

O Anaconda traz na instalação uma série de módulos


disponíveis, principalmente módulos para computação
científica e Data Science.

www.datascienceacademy.com.br
Módulos e Pacotes

Para verificar os módulos e pacotes instalados, use o


comando:

conda list

www.datascienceacademy.com.br
Módulos e Pacotes

www.datascienceacademy.com.br
Módulos e Pacotes

Mas você pode instalar qualquer módulo que desejar e que


seja compatível com a sua versão da linguagem Python!

www.datascienceacademy.com.br
Módulos e Pacotes

Para isso, abra o prompt de comando no seu computador e use o


comando:

conda install ”nome-do-modulo”

ou

pip install ”nome-do-modulo”

www.datascienceacademy.com.br
Módulos e Pacotes

Por exemplo, se você quiser instalar um módulo para criar


arquivos do Microsoft PowerPoint a partir do Python.

http://python-pptx.readthedocs.io/en/latest

www.datascienceacademy.com.br
Módulos e Pacotes

www.datascienceacademy.com.br
Módulos e Pacotes

www.datascienceacademy.com.br
Módulos e Pacotes

Existem diversos módulos do Python criados por


desenvolvedores e empresas ao redor do mundo.

www.datascienceacademy.com.br
Módulos e Pacotes

Pacotes

www.datascienceacademy.com.br
Módulos e Pacotes

Pacotes são uma forma de estruturar os módulos Python.

import modulo
import pacote.modulo

www.datascienceacademy.com.br
Módulos e Pacotes

Um pacote é um conjunto de módulos Python.

www.datascienceacademy.com.br
Módulos e Pacotes

Enquanto um módulo é um único arquivo Python, um pacote


é um diretório de módulos Python contendo um arquivo
__init__.py

www.datascienceacademy.com.br
Módulos e Pacotes

www.datascienceacademy.com.br
Módulos e Pacotes

import
pacote.modulo

www.datascienceacademy.com.br
Módulos e Pacotes

O repositório de pacotes do Python, é o PyPi (Python Package


Index) com mais de 130 mil pacotes disponíveis.

https://pypi.python.org/pypi

www.datascienceacademy.com.br
Python
Map
Fundamentos para
Análise de Dados

www.datascienceacademy.com.br
Map

Python fornece várias funções que permitem uma


abordagem funcional à programação, oferecendo mais
facilidade na criação do seu código.

www.datascienceacademy.com.br
Map

Podemos dizer que a programação funcional é uma


programação orientada à expressão.

www.datascienceacademy.com.br
Map

Funções orientadas à expressão, em Python:

• map(Função, Sequência)
• reduce(Função, Sequência)
• filter(Função, Sequência)
• lambda
• list comprehension

www.datascienceacademy.com.br
Map

www.datascienceacademy.com.br
Map

Como esta pode ser uma operação comum, Python nos


fornece uma função interna (built-in) que faz a maior parte do
trabalho por nós.

www.datascienceacademy.com.br
Map

Map é uma função que recebe 2 argumentos:

• Uma função
• Uma sequência

map(função, sequência)

www.datascienceacademy.com.br
Map

O primeiro argumento é o nome de uma função e o segundo


uma sequência (por exemplo, uma lista).

map(função, sequência)

www.datascienceacademy.com.br
Map

map() aplica a função a todos os elementos da sequência.

Uma nova lista com os elementos alterados pela função é


retornado.

www.datascienceacademy.com.br
Python
Reduce
Fundamentos para
Análise de Dados

www.datascienceacademy.com.br
Reduce

Reduce é uma função que recebe 2 argumentos (assim como a


função map):

• Uma função
• Uma sequência

reduce(função, sequência)

www.datascienceacademy.com.br
Reduce

O primeiro argumento é o nome de uma função e o segundo


uma sequência (por exemplo, uma lista).

www.datascienceacademy.com.br
Reduce

Ao contrário da função map que aplica a função a cada


elemento da sequência e retorna uma outra sequência de
elementos, a função reduce aplica a função passada como
parâmetro aos elementos da sequência, até que reste apenas
um elemento.

www.datascienceacademy.com.br
Reduce

[0] [1] [2] [3]

www.datascienceacademy.com.br
Python
Filter
Fundamentos para
Análise de Dados

www.datascienceacademy.com.br
Filter

A exemplo das funções built-in, map() e reduce(), a função


filter() também recebe 2 argumentos, uma função e uma
sequência.

filter(função, sequência)

www.datascienceacademy.com.br
Filter

A função filter() oferece uma maneira conveniente para filtrar


todos os elementos de uma sequência, para os quais a função
retorne True.

filter(função, sequência)

www.datascienceacademy.com.br
Filter

A função passada como parâmetro para filter(), deve retornar


um valor booleano, True ou False.

www.datascienceacademy.com.br
Filter

A função será aplicada a todos os valores de uma sequência e os


valores serão retornados, apenas se retornarem True para a
função.

www.datascienceacademy.com.br
Python
List Comprehension
Fundamentos para
Análise de Dados

www.datascienceacademy.com.br
List Comprehension

Como vimos nos itens anteriores, podemos usar as funções


map(), reduce() e filter(), para aplicar uma determinada função
a uma sequência de dados.

www.datascienceacademy.com.br
List Comprehension

Mas como esta é uma atividade comum em Python, a


linguagem fonece alternativas ainda mais flexíveis que Map() e
Filter().

www.datascienceacademy.com.br
List Comprehension

List Comprehension, aplica uma expressão arbitrária (ao invés de


aplicar apenas uma função) a uma sequência de elementos.

www.datascienceacademy.com.br
List Comprehension

List Comprehension, permite desenvolver listas usando uma notação


diferente. Seria essencialmente uma linha de loop for, construída dentro de
[].

Por exemplo:

lst = [x for x in ”sequência”]

www.datascienceacademy.com.br
List Comprehension

Nós normalmente usamos loops for quando trabalhamos com


funções map() e usamos list comprehension quando esta for
mais fácil de ser aplicada.

No entanto, há uma vantagem substancial de desempenho ao


utilizar a list comprehension.

www.datascienceacademy.com.br
Python
Zip eFundamentos
Enumerate para
Análise de Dados

www.datascienceacademy.com.br
Zip e Enumerate

A função zip() agrega os valores de duas sequências e retorna uma


tupla.

zip(sequência, sequência)

www.datascienceacademy.com.br
Zip e Enumerate

zip () pode ser usado quando o número de elementos for


diferente em cada sequência. Mas o objeto resultante terá o
mesmo número de elementos da sequência menor.

www.datascienceacademy.com.br
Zip e Enumerate

zip () pode ser usado quando o número de elementos for


diferente em cada sequência. Mas o objeto resultante terá o
mesmo número de elementos da sequência menor.

Ou seja:

zip([1, 2, 3, 4], [1, 2, 3])

(1,1) (2,2) (3,3)

www.datascienceacademy.com.br
Zip e Enumerate

Outra função bastante útil é

enumerate()

www.datascienceacademy.com.br
Zip e Enumerate

A função enumerate permite retornar o índice de cada valor em


uma sequência, à medida que você percorre toda a sequência.

Enumerate retorna uma tupla no formato tupla(índice, valor).

www.datascienceacademy.com.br
Zip e Enumerate

enumerate(sequência)

www.datascienceacademy.com.br
Python
ErrosFundamentos
e Exceções para
Análise de Dados

www.datascienceacademy.com.br
Erros e Exceções

while True
print(‘Bem-vindo’)

www.datascienceacademy.com.br
Erros e Exceções

while True:
print(’Bem-vindo’)

www.datascienceacademy.com.br
Erros e Exceções

Porém, mesmo quando uma expressão estiver sintaticamente


correta, ainda poderão ocorrer erros e neste caso, chamamos de
Exceções.

www.datascienceacademy.com.br
Erros e Exceções

Podemos tratar exceções em Python, da seguinte forma:

try:
aqui vão as operações…
except Exceção1:
Se houver a Exceção1, execute este bloco
except Exceção2:
Se houver a Exceção2, execute este bloco
else:
Se não houver exceção, execute este bloco

www.datascienceacademy.com.br
Erros e Exceções

Temos ainda a palavra reservada Finally, que nos permite


executar código, mesmo que exceções ocorrem.

www.datascienceacademy.com.br
Erros e Exceções

Uma lista completa de exceções em Python, pode ser


encontrada aqui:

https://docs.python.org/3.6/library/exceptions.html

www.datascienceacademy.com.br
Orientação a Objetos
Python
Fundamentos para
Análise de Dados

www.datascienceacademy.com.br
Orientação a Objetos

www.datascienceacademy.com.br
Introdução
Pythonà
Programação
Fundamentos para
Análise de Dados
Orientada a Objetos

www.datascienceacademy.com.br
Orientação a Objetos

Introdução à Programação Orientada a


Objetos

www.datascienceacademy.com.br
Orientação a Objetos

Programação Orientada a Objetos (POO) tende a ser um dos


principais obstáculos para iniciantes em Python.

www.datascienceacademy.com.br
Orientação a Objetos

Neste capítulo, vamos aprender sobre POO em Python através dos seguintes
tópicos:

• Usando a palavra reservada class


• Criando atributos de classe
• Criando métodos em uma classe
• Instanciando Objetos
• Herança
• Métodos especiais

www.datascienceacademy.com.br
Orientação a Objetos

A orientação a objetos é um modelo


de análise, projeto e programação de sistemas
de software baseado na composição e interação entre
diversas unidades de software chamadas de objetos.

www.datascienceacademy.com.br
Orientação a Objetos

A Programação Orientada a Objetos (POO), foi criada para


tentar aproximar o mundo real e o mundo virtual. A ideia
fundamental é tentar simular o mundo real dentro do
computador.

www.datascienceacademy.com.br
Orientação a Objetos

Na Programação Orientada a Objetos, o programador (você) é


responsável por moldar o mundo dos objetos, e definir como os
objetos devem interagir entre si.

www.datascienceacademy.com.br
Orientação a Objetos

Os objetos "conversam" uns com os outros através do envio de


mensagens e o papel principal do programador é definir quais
serão as mensagens que cada objeto pode receber e também
qual a ação que o objeto deve realizar ao receber cada
mensagem.

www.datascienceacademy.com.br
Orientação a Objetos

Alguns exemplos de linguagens orientadas a objetos modernas


utilizadas por grandes empresas em todo o mundo são:

Java, C#, C++, Ruby, Lisp, Python, etc.

www.datascienceacademy.com.br
Programação
Estruturada
Python
x
Fundamentos para

Programação
Análise de Dados

Orientada a Objetos

www.datascienceacademy.com.br
Orientação a Objetos

Programação Estruturada

Programação Orientada a Objetos

www.datascienceacademy.com.br
Orientação a Objetos

Programaçã • Sequência
o • Decisão
Estruturada • Iteração
(Repetição)

www.datascienceacademy.com.br
Orientação a Objetos

Aplicação
Programaçã
o Função
Estruturada
Função Dados

Função

www.datascienceacademy.com.br
Orientação a Objetos

Aplicaçã
Programaçã o
o POO Objeto Objeto

Atributos Atributos

Métodos Métodos

www.datascienceacademy.com.br
Orientação a Objetos

Programaçã
o POO

www.datascienceacademy.com.br
Principais Conceitos
Python
Fundamentos para
de POO
Análise de Dados

www.datascienceacademy.com.br
Orientação a Objetos

• Classe
• Objeto
Principais conceitos da • Atributos
POO • Métodos
• Mensagem
• Herança
• Polimorfismo
• Encapsulamento

www.datascienceacademy.com.br
Classes e Objetos
Python
Fundamentos para
Análise de Dados

www.datascienceacademy.com.br
Classes e Objetos

A classe é a estrutura básica do paradigma de orientação a


objetos, que representa o tipo do objeto, um modelo a partir
do qual os objetos serão criados.

www.datascienceacademy.com.br
Classes e Objetos

Uma classe é apenas um molde. Uma especificação que


define o que um objeto desse tipo deverá ter como atributo
e como ele deve se comportar.

Por exemplo:

Podemos criar a classe Livro.

www.datascienceacademy.com.br
Classes e Objetos

Classe
Livro

www.datascienceacademy.com.br
Classes e Objetos

A classe é uma espécie de template que define a natureza de


um futuro objeto.

www.datascienceacademy.com.br
Classes e Objetos

A partir de classes, nós construímos instâncias.

www.datascienceacademy.com.br
Classes e Objetos

Cada instância é um objeto.

www.datascienceacademy.com.br
Classes e Objetos

Uma instância, é um objeto específico, criado a partir de uma


classe.

www.datascienceacademy.com.br
Classes e Objetos

Objetos representam entidades, com suas qualidades


(atributos) e ações (métodos) que estas podem
realizar.

www.datascienceacademy.com.br
Classes e Objetos

Em Python tudo é um objeto.

www.datascienceacademy.com.br
Classes e Objetos

Em Python tudo é um objeto

list, tuple, dict, int, float

www.datascienceacademy.com.br
Classes e Objetos

E como podemos criar nossos próprios objetos em Python?

www.datascienceacademy.com.br
Classes e Objetos

Objetos definidos pelo usuário em Python são criados a partir


de instâncias de classes criadas usando a palavra reservada
class.

www.datascienceacademy.com.br
Classes e Objetos

Por convenção, o nome de uma classe começa com letra


maiúscula.

www.datascienceacademy.com.br
Classes e Objetos

João

José

Josias

www.datascienceacademy.com.br
Classes e Objetos

www.datascienceacademy.com.br
Classes e Objetos

www.datascienceacademy.com.br
Classes e Objetos

Em Python, novos objetos são criados a partir das classes. O


objeto é uma instância da classe, que possui características
próprias.

www.datascienceacademy.com.br
MétodosPython
Fundamentos para
Análise de Dados

www.datascienceacademy.com.br
Métodos

Métodos são funções definidas dentro do corpo de uma


classe.

www.datascienceacademy.com.br
Métodos

Eles são usados para realizar operações com os atributos


dos nossos objetos.

www.datascienceacademy.com.br
Métodos

Métodos são usados no conceito de encapsulamento, do


paradigma de Programação Orientada a Objetos.

www.datascienceacademy.com.br
Métodos

Métodos são basicamente funções definidas dentro de


uma classe, para manipular os objetos criados a partir da
classe.

Utiliza-se a palavra reservada def para criar métodos, da


mesma forma que se cria funções.

www.datascienceacademy.com.br
Métodos

Podemos criar classes para nossas atividades de análise de


dados e criar métodos específicos para cada tarefa,
encapsulando nossa lógica de programação.

www.datascienceacademy.com.br
Herança
Python
Fundamentos para
Análise de Dados

www.datascienceacademy.com.br
Herança

Herança é uma forma de gerar novas classes usando


classes que foram definidas previamente.

www.datascienceacademy.com.br
Herança

Estas novas classes formadas, são chamadas classes derivadas


ou sub-classes.

www.datascienceacademy.com.br
Herança

A classe que deu origem a sub-classe, é chamada super-classe


ou classe base.

www.datascienceacademy.com.br
Herança

Um dos principais benefícios da Herança é a reutilização de


código e a redução da complexidade dos programas.

www.datascienceacademy.com.br
Herança

As classes derivadas estendem as funcionalidades das classes


base.

www.datascienceacademy.com.br
Métodos Especiais
Python
Fundamentos para
Análise de Dados

www.datascienceacademy.com.br
Métodos Especiais

Classes em Python podem implementar determinadas


operações com métodos especiais.

www.datascienceacademy.com.br
Métodos Especiais

Ao usar métodos especiais, sua classe poderá ter um


comportamento semelhante a um dicionário, uma função ou
mesmo um número.

www.datascienceacademy.com.br
Métodos Especiais

Você já utilizou um método especial nos vídeos anteriores:

__init__

www.datascienceacademy.com.br
Métodos Especiais

__abs__ __delattr__ __getattribute__ __index__


__add__ __delete__ __getitem__ __init__
__and__ __delitem__ __getslice__ __instancecheck_
__call__ __delslice__ __gt__ __int__
__class__ __dict__ __hash__ __invert__
__cmp__ __div__ __hex__ __ior__
__coerce__ __divmod__ __iadd__ __ipow__
__complex__ __eq__ __iand__ __irshift__
__contains__ __float__ __idiv__ __isub__
__del__ __floordiv__ __ifloordiv__ __long__
__itruediv__ __ge__ __ilshift__ __lshift__
__ixor__ __get__ __imod__ __mod__
__len__ __getattr__ __imul__ __new__

www.datascienceacademy.com.br
Métodos Especiais

Por exemplo, quando você usa a função del para remover um


atributo de um objeto, o método especial __delattr__ é
chamado.

www.datascienceacademy.com.br
Métodos Especiais

Você digita isso: del obj.my_attrib

Python chama isso: obj.__delattr__(”my_attrib”)

www.datascienceacademy.com.br
Métodos Especiais

Ou seja, você não precisa fazer uma chamada ao método


diretamente. Python oferece vários métodos especiais para você!

www.datascienceacademy.com.br
Manipulando Banco
Python
de Dados em Python
Fundamentos para
Análise de Dados

www.datascienceacademy.com.br
Manipulando Banco de Dados em Python

www.datascienceacademy.com.br
O Que São Bancos
Python de
Dados?
Fundamentos para
Análise de Dados

www.datascienceacademy.com.br
Manipulando Banco de Dados em Python

O que são Bancos de


Dados?

www.datascienceacademy.com.br
Manipulando Banco de Dados em Python

O que são Bancos de Dados?

Bancos de dados são coleções de dados interligados entre si e


organizados para fornecer informações.

www.datascienceacademy.com.br
Manipulando Banco de Dados em Python

O que são Bancos de Dados?

É uma coleção de dados inter-relacionados, representando


informações sobre um domínio específico.

www.datascienceacademy.com.br
Dados
x Python
Fundamentos para
Informações
Análise de Dados

www.datascienceacademy.com.br
Manipulando Banco de Dados em Python

Dados x Informações

www.datascienceacademy.com.br
Manipulando Banco de Dados em Python

• Dados – fatos brutos

• Informação – agrupamento
de dados de forma
organizada

www.datascienceacademy.com.br
Python
SGBD
Fundamentos para
Análise de Dados

www.datascienceacademy.com.br
Manipulando Banco de Dados em Python

SGBD
Sistema de Gerenciamento de Bancos de Dados

DBMS
Database Management System

www.datascienceacademy.com.br
Manipulando Banco de Dados em Python

Um Sistema de Gerenciamento
SGBD de Banco de Dados (SGBD) é o
Sistema de conjunto de programas de
Gerenciamento de computador (softwares)
Bancos de Dados responsáveis pelo gerenciamento
de uma base de dados.

www.datascienceacademy.com.br
Manipulando Banco de Dados em Python

www.datascienceacademy.com.br
Manipulando Banco de Dados em Python

www.datascienceacademy.com.br
Manipulando Banco de Dados em Python

Por que usar um SGBD?

• Controlar redundância
• Compartilhamento de dados
• Independência de dados
• Segurança
• Backup e recuperação a falhas
• Forçar restrições de integridade
• Aumentar a produtividade e disponibilidade
• Flexibilidade e padronização

www.datascienceacademy.com.br
Manipulando Banco de Dados em Python

Onde encontramos SGBD’s?

• Data Mining
• Datawarehousing e OLAP
• Banco de Dados Multimídia
• Banco de Dados Espaciais e Temporais
• Bancos de Dados Móveis
• Bancos de Dados Semiestruturados
• Novas Aplicações de Bancos de Dados: Bibliotecas
Digitais, Comércio Eletrônico, Telecomunicações, etc.
• Uma das Fontes do Big Data

www.datascienceacademy.com.br
Bancos dePython
Dados
Relacionais
Fundamentos para
Análise de Dados

www.datascienceacademy.com.br
Bancos de Dados Relacionais

Bancos de Dados Relacionais

www.datascienceacademy.com.br
Bancos de Dados Relacionais

Bancos de Dados Relacionais são gerenciados por


RDBMS (Relational Database Management System)

www.datascienceacademy.com.br
Bancos de Dados Relacionais

www.datascienceacademy.com.br
Bancos de Dados Relacionais

www.datascienceacademy.com.br
Bancos de Dados Relacionais

• Entidades (tabelas) e atributos

• Registros (Tuplas)

• Chaves (primária e estrangeira)

• Relacionamentos entre entidades (tabelas)

• Integridade Referencial

• Normalização

www.datascienceacademy.com.br
Principais Conceitos
Python
de Bancos de Dados
Fundamentos para

Relacionais
Análise de Dados

www.datascienceacademy.com.br
Bancos de Dados Relacionais

• Entidades (tabelas) e atributos

• Registros (Tuplas)

• Chaves (primária e estrangeira)

• Relacionamentos entre entidades (tabelas)

• Integridade Referencial

• Normalização

www.datascienceacademy.com.br
Bancos de Dados Relacionais

Os dados de um
banco de dados
relacional são
armazenados em
tabelas.

www.datascienceacademy.com.br
Bancos de Dados Relacionais

Ano de
Código Nome Descrição Uso Lançamento
Linguagem de uso
P-1200 Python geral Análise de Dados 1991
R-1300 R Linguagem Estatística Análise de Dados 1990
Tabela:
LinguagemLinguagens-de-Programação
de uso Processamento de Big
J-1400 Scala geral Data 2001

Cada linha formada por uma lista ordenada de


colunas representa um registro, ou tupla, dentro da
tabela.

www.datascienceacademy.com.br
Bancos de Dados Relacionais

Ano de
Código Nome Descrição Uso Lançamento
Linguagem de uso
P-1200 Python geral Análise de Dados 1991
R-1300 R Linguagem Estatística Análise de Dados 1990
Tabela:
LinguagemLinguagens-de-Programação
de uso Processamento de Big
J-1400 Scala geral Data 2001

As colunas de uma tabela são também chamadas de


atributos.

www.datascienceacademy.com.br
Bancos de Dados Relacionais

Um conceito importante em um
banco de dados relacional é o
conceito de atributo chave, que
permite identificar e diferenciar
uma tupla de outra.

www.datascienceacademy.com.br
Bancos de Dados Relacionais

Chave Primária (PK) - coluna(s) que garante(m) a unicidade das


linhas. É a chave principal de uma tabela. Uma tabela só pode
ter uma Chave Primária.

www.datascienceacademy.com.br
Bancos de Dados Relacionais

Chave Estrangeira (FK) - coluna(s) de uma tabela que contém


valores da PK de outra tabela. Uma tabela pode ter mais de
uma
Chave Estrangeira.

www.datascienceacademy.com.br
Bancos de Dados Relacionais

As chaves garantem o relacionamento entre as


tabelas.

www.datascienceacademy.com.br
Bancos de Dados Relacionais

Índices

É uma lista ordenada de valores que apontam para os dados


nas tabelas. Utilizado para agilizar a leitura de dados. Pode ser
utilizado também para forçar a unicidade dos dados.

www.datascienceacademy.com.br
Bancos de Dados Relacionais

Integridade Referencial

É o conceito em que várias tabelas de banco de dados


compartilham uma relação com base nos dados armazenados
nas tabelas e essa relação deve ser coerente. Isso geralmente é
imposto com ações de adição, exclusão e atualização em
cascata.

www.datascienceacademy.com.br
Bancos de Dados Relacionais

Normalização de dados é o processo de organização de


campos e tabelas em um banco de dados relacional para
minimizar a redundância e a dependência.

www.datascienceacademy.com.br
Bancos de Dados Relacionais

www.datascienceacademy.com.br
Linguagem SQL
Python
Fundamentos para
Análise de Dados

www.datascienceacademy.com.br
Bancos de Dados Relacionais

www.datascienceacademy.com.br
Bancos de Dados Relacionais

www.datascienceacademy.com.br
Bancos de Dados Relacionais

DML (Data Manipulation Language) (Desenvolvimento)

• SELECT : pesquisa de dados


• UPDATE : atualização de dados
• DELETE : eliminação de dados
• INSERT : inserção de dados

www.datascienceacademy.com.br
Bancos de Dados Relacionais

DDL (Data Definition Language) (Suporte)

• CREATE : definição de um objeto (tabela, índice)


• ALTER : alteração de um objeto
• DROP : eliminação de um objeto

www.datascienceacademy.com.br
Bancos de Dados Relacionais

DCL (Data Control Language)


(Suporte/Desenvolvimento)

• GRANT : fornecer um privilégio


• REVOKE : tirar um privilégio

www.datascienceacademy.com.br
SQLite
Python
Fundamentos para
Análise de Dados

www.datascienceacademy.com.br
SQLite

SQLite é um engine (motor) de banco de dados SQL.

www.datascienceacademy.com.br
SQLite

Se o Banco de Dados SQLite é um único arquivo, por que não


usar um arquivo comum ao invés de SQLite?

www.datascienceacademy.com.br
SQLite

Por que usar o SQLite?

• Não requer um processo servidor dedicado.


• Configuração zero, o que significa que nenhuma configuração ou
administração é necessária.
• Um banco de dados SQLite completo é armazenado em um único arquivo
multiplataforma.
• SQLite é pequeno e leve, menos de 400 KB quando totalmente
configurado.

www.datascienceacademy.com.br
SQLite

O SQLite está disponível para diversas plataformas, como


Unix (Linux, Mac OSX, Android e iOS) e Windows.

www.datascienceacademy.com.br
SQLite

O SQLite pode ser usado, quando recursos avançados de


SGBD’s não forem necessários, como por exemplo para
aplicações que executam em um smartphone.

www.datascienceacademy.com.br
SQLite

O SQLite é instalado automaticamente quando você instala o


Anaconda.

www.datascienceacademy.com.br
SQLite

O código do SQLite, totalmente escrito em linguagem C, é de


domínio público e pode ser usado livremente, inclusive para
uso comercial e privado.

www.datascienceacademy.com.br
SQLite

O SQLite é amplamente utilizado na internet e em


smartphones.

www.datascienceacademy.com.br
SQLite

Ao contrário de outros Bancos de Dados, o SQLite não requer


um processo ou serviço sendo executado em um servidor.
Todo acesso ao banco de dados é feito através de
leitura/escrita aos arquivos do banco de dados, acesso este
feito pelas bibliotecas do SQLite.

www.datascienceacademy.com.br
SQLite

Todos os objetos do banco de dados, como tabelas, índices,


triggers e views ficam armazenados no mesmo arquivo.

www.datascienceacademy.com.br
SQLite

Por ser amplamente testado antes de cada release, o SQLite é


considerado bastante confiável.

www.datascienceacademy.com.br
SQLite

E quando não é apropriado usar SQLite?

• Aplicações Cliente/Servidor
• Websites com alto volume de tráfego
• Análise de datasets muito grandes
• Alta concorrência é requerida
• Armazenar Big Data

www.datascienceacademy.com.br
SQLite

https://www.sqlite.org

www.datascienceacademy.com.br
Banco dePython
Dados
NoSQL
Fundamentos para
Análise de Dados

www.datascienceacademy.com.br
Banco de Dados NoSQL

Bancos de Dados
Relacionais

www.datascienceacademy.com.br
Banco de Dados NoSQL

Bancos de Dados
NoSQL

www.datascienceacademy.com.br
Banco de Dados NoSQL

Bancos de Dados NoSQL, são bancos de dados


distribuídos e não-relacionais, que foram projetados
para atender os requerimentos de Big Data.

www.datascienceacademy.com.br
Banco de Dados NoSQL

Bancos de Dados NoSQL oferecem uma arquitetura muito


mais escalável e eficiente que os bancos relacionais e facilitam
consultas no-sql de dados semi-estruturados ou não-
estruturados.

www.datascienceacademy.com.br
Banco de Dados NoSQL

A este respeito, NoSQL surgiu como


um paradigma não tradicional para
lidar com grandes volumes de dados e
para resolver os desafios colocados
pela chegada de implementações de
Big Data.

www.datascienceacademy.com.br
Banco de Dados NoSQL

Bancos de Dados NoSQL oferecem 4 categorias principais de


bancos de dados:

• Graph databases
• Document databases
• Key-values stores
• Column family stores

www.datascienceacademy.com.br
Banco de Dados NoSQL

www.datascienceacademy.com.br
Banco de Dados NoSQL

www.datascienceacademy.com.br
Banco de Dados NoSQL

Para uma lista completa de Bancos de Dados NoSQL


visite:

http://nosql-database.org

www.datascienceacademy.com.br
Banco de Dados NoSQL

www.datascienceacademy.com.br
MongoDBPython
Fundamentos para
Análise de Dados

www.datascienceacademy.com.br
MongoDB

MongoDB é um banco de dados orientado a


documento, uma das categorias de bancos de dados
NoSQL.

www.datascienceacademy.com.br
MongoDB

Um banco de dados NoSQL orientado a documento,


substitui o conceito de ”linha” como em bancos de dados
relacionais, por um modelo mais flexível, o ”documento”.

www.datascienceacademy.com.br
MongoDB

O MongoDB é open-source e um dos líderes no segmento


de bancos de dados NoSQL. Ele foi desenvolvido em
linguagem C++.

www.datascienceacademy.com.br
MongoDB

Algumas das principais catacterísticas do MongoDB:

• Indexação
• Agregação
• Tipos de dados especiais
• Armazenamento

www.datascienceacademy.com.br
MongoDB

Algumas características presentes em bancos de dados


relacionais, não estão presentes no MongoDB, como alguns
tipos de joins e transações multi-linha.

www.datascienceacademy.com.br
MongoDB

MongoDB RDBMS
Database Database
Collection Tabela
Document Linha/Tupla
Field Coluna
Embedded Documents Join de Tabelas
Primary Key Primary Key

www.datascienceacademy.com.br
MongoDB

Onde usar o MongoDB?

• Big Data
• Gestão de Conteúdo
• Infraestrutura Social e Mobile
• Gestão de Dados de Usuários
• Data Hub
• Capturar Stream de Dados para
Análise

www.datascienceacademy.com.br
Mini-Projeto1
StreamFundamentos
de Dados
Python do
para
Twitter
Análisecom
de Dados
MongoDB, Pandas e
Scikit Learn

www.datascienceacademy.com.br
Stream de Dados do Twitter com MongoDB, Pandas e Scikit Learn

Text Mining é uma das aplicações de técnicas de


processamento de linguagem natural e métodos analíticos
para extrair informações relevantes de dados de textos.

www.datascienceacademy.com.br
Stream de Dados do Twitter com MongoDB, Pandas e Scikit Learn

O Text Mining tem atraído cada vez mais atenção, pela


possibilidade de análise de dados em páginas web, projetos
no Google e redes sociais como o Twitter.

www.datascienceacademy.com.br
Stream de Dados do Twitter com MongoDB, Pandas e Scikit Learn

O Twitter é uma fonte rica de informações sobre os mais


variados assuntos.

www.datascienceacademy.com.br
Stream de Dados do Twitter com MongoDB, Pandas e Scikit Learn

Podemos usar dados do Twitter para analisar tendências


relacionadas a uma palavra chave, analisar o sentimento
relacionado a uma determinada marca ou para obter feedback
sobre produtos e serviços.

www.datascienceacademy.com.br
Stream de Dados do Twitter com MongoDB, Pandas e Scikit Learn

O MongoDB, como vimos, é uma banco NoSQL orientado a


documento, que permite a integração entre certos tipos de
aplicação, de forma mais fácil e rápida.

www.datascienceacademy.com.br
Stream de Dados do Twitter com MongoDB, Pandas e Scikit Learn

Para obter dados do Twitter, é preciso usar uma API.

www.datascienceacademy.com.br
Stream de Dados do Twitter com MongoDB, Pandas e Scikit Learn

API (Application Programming Interface) é um


software que permite a interação entre programas de
computador e serviços web (web services) de forma
fácil.

www.datascienceacademy.com.br
Stream de Dados do Twitter com MongoDB, Pandas e Scikit Learn

Diversos web services disponibilizam API’s para que


os desenvolvedores possam integragir com suas
aplicações e acessar dados de forma programática.

www.datascienceacademy.com.br
Stream de Dados do Twitter com MongoDB, Pandas e Scikit Learn

Diversos web services disponibilizam API’s para que


os desenvolvedores possam integragir com suas
aplicações e acessar dados de forma programática.

Neste caso, usaremos a Twitter Streaming API, para


fazer downloads do Twitter.

www.datascienceacademy.com.br
Stream de Dados do Twitter com MongoDB, Pandas e Scikit Learn

Obtendo as API’s Keys:

1- Crie uma conta no Twitter, caso já não possua uma


2- Siga a Data Science Academy no Twitter (@dsacademybr)
3- Acesse http://apps.twitter.com com seu login e senha do Twitter
4- Clique em ”Create a New App”
5- Preencha as informações e clique em ”Criar Twitter Application”
6- Clique em Keys e Access Tokens e copie API Keys e API Secret
7- Clique em ”Create my access token” e copie seu Access Token e Access token
secret

www.datascienceacademy.com.br
Módulos Python
Python Para
Análise de Dados
Fundamentos para
Análise de Dados

www.datascienceacademy.com.br
Introdução

Módulos Python
Introdução à Análise Introdução ao Machine Learning
Para Análise de
de Dados em Python TensorFlow com Python
Dados

Bônus
Introdução a Deep
Learning

www.datascienceacademy.com.br
Introdução

Módulos Python Para Análise de Dados


(Python Open Data Science Stack)

www.datascienceacademy.com.br
Introdução

Outras

X
Python Open Ferramentas de
Data Science Análise:
Stack R, SAS, Stata,
Matlab

www.datascienceacademy.com.br
Introdução

www.datascienceacademy.com.br
NumPy Python
Fundamentos para
Análise de Dados

www.datascienceacademy.com.br
NumPy

NumPy, um acronimo para Numerical Python, é o pacote


fundamental para computação matemática em Python.

NumPy fornece suporte para arrays e matrizes, além de


funções matemáticas para operações com esses objetos.

www.datascienceacademy.com.br
NumPy

O NumPy nasceu a partir de 2 outros pacotes: Numeric e


Numarray.

Esses pacotes foram criados em um esforço para prover uma


solução open-source ao Matlab.

Numeric e Numarray foram descontinuados e NumPy nasceu


com o melhor de ambos.

www.datascienceacademy.com.br
NumPy

www.datascienceacademy.com.br
NumPy

Entre outras coisas, NumPy oferece:

• Um rápido e eficiente array multidimensional


• Ferramentas para leitura de datasets baseados em arrays
• Operações de álgebra linear
• Integração com C, C++ e Fortran

www.datascienceacademy.com.br
NumPy

Além de alta capacidade de processamento de arrays, NumPy


adiciona ao Python, uma de suas funções principais em Análise
de Dados, a possibilidade de passar dados de um algoritmo para
outro.

www.datascienceacademy.com.br
NumPy

Para dados núméricos, o NumPy é mais eficiente para armazenar


e manipular dados, em relação a outros objetos built-in em
Python.

www.datascienceacademy.com.br
NumPy

Mas, o que são arrays?

www.datascienceacademy.com.br
NumPy

Arrays

Um array NumPy é um
conjunto de valores, todos do
mesmo tipo e indexados por
uma tupla de valores não-
negativos.

www.datascienceacademy.com.br
NumPy

Por que usar arrays com NumPy?

• Arrays NumPy são homogêneos e possuem tipos estáticos


• Arrays NumPy são mais eficientes no uso de memória
• Arrays oferecem rápida implementação de funções
matemáticas
• Arrays são uma opção mais rápida e mais poderosa que listas

www.datascienceacademy.com.br
NumPy

Embora NumPy não ofereça funcionalidades analíticas de alto nível,


a compreensão sobre arrays ajudará a utilizar as ferramentas do
Pandas de forma muito mais eficaz, além de ser a base para
construção de modelos de Machine Learning em Python.

www.datascienceacademy.com.br
PandasPython
Fundamentos para
Análise de Dados

www.datascienceacademy.com.br
Pandas

Pandas é uma biblioteca criada para manipular de forma


rápida e expressiva, dados estruturados.

www.datascienceacademy.com.br
Pandas

Pandas é um dos componentes principais no portfólio Python


para Análise de Dados.

www.datascienceacademy.com.br
Pandas

Pandas possui uma sofisticada funcionalidade de indexação que


torna fácil o “slice and dice”, agregações e seleção de subsets de
dados.

www.datascienceacademy.com.br
Pandas

Pandas possui ainda funcionalidades de manipulação de dados de séries


temporais de alta performance, ideal para manipulação de dados
financeiros.

www.datascienceacademy.com.br
Pandas

Pandas é uma excelente opção para Data Munging/Wrangling

Data Munging/Wrangling é basicamente o processo de


converter e mapear dados de um estado ”bruto” em outro
formato que permita manipular os dados com ferramentas de
mais alto nível, como por exemplo aplicar algoritmos de
Machine Learning.

www.datascienceacademy.com.br
Pandas

Pandas é largamente utilizado na fase de Preparação dos


Dados, uma das fases mais importantes no processo de Data
Science.

www.datascienceacademy.com.br
Pandas

Pandas contém estruturas de alto nível e ferramentas de manipulação que


tornam a análise de dados rápida e fácil com Python. Pandas funciona muito
bem com NumPy e juntos eles oferecem:

• Estruturas de dados de alto nível


• Funcionalidade de time-series (séries temporais)
• A mesma estrutura de dados consegue tratar dados time-series e não time-
series
• Tratamento flexível de dados missing
• Merge e outras operações relacionais com SQL

www.datascienceacademy.com.br
Pandas

Para poder trabalhar com Pandas, você deve conhecer bem estas
duas estruturas:

Series e DataFrames

Embora elas não sejam a solução para todos os problemas, elas


poderão ajudar na maioria deles.

www.datascienceacademy.com.br
Pandas

Series

Series é um array unidimensional que contém um array de dados


e um array de labels, chamado índice.

www.datascienceacademy.com.br
Pandas

www.datascienceacademy.com.br
Pandas

Dataframes

Dataframes representam uma estrutura tabular semelhante a estrutura


de uma planilha do Microsoft Excel, contendo uma coleção de colunas
em que cada uma pode ser um diferente tipo de valor (número, string,
etc...).

www.datascienceacademy.com.br
Pandas

Dataframes

Os Dataframes possuem index e linhas e esta estrutura é muito semelhante a


um dataframe em R. Os dados de um dataframe são armazenados em ou
mais blocos bidimensionais, ao invés de listas, dicionários ou alguma outra
estrutura de array.

www.datascienceacademy.com.br
Pandas

www.datascienceacademy.com.br
Matplotlib
Python
Fundamentos para
Análise de Dados

www.datascienceacademy.com.br
Matplotlib

Matplotlib é a biblioteca Python mais popular para


visualização de dados e geração de gráficos.

www.datascienceacademy.com.br
Matplotlib

Matplotlib permite que você crie facilmente gráficos,


histogramas e outras visualizações profissionais.

www.datascienceacademy.com.br
Matplotlib

Quando usado no Jupyter Notebook, Matplotlib tem recursos


interativos como zoom e visão panorâmica.

www.datascienceacademy.com.br
Matplotlib

Ele possui suporte em todos os sistemas operacionais e


também pode exportar gráficos para vetor comum e outros
formatos como: pdf, svg, jpg, png, bmp, gif, etc.

www.datascienceacademy.com.br
Matplotlib

Para simples plotagem o método pyplot fornece uma


interface parecida com o Matlab, especialmente quando
combinado com Jupyter Notebook.

www.datascienceacademy.com.br
Matplotlib

O usuário tem total controle de estilos de linhas, propriedades de fonte,


atributos, etc.. através de uma interface orientada a objetos ou através de um
conjunto de funções familiares aos usuários do Matlab.

www.datascienceacademy.com.br
Matplotlib

A dica mais importante quando se trata de plotagem é:

menos é mais

www.datascienceacademy.com.br
Matplotlib

O objetivo final da visualização dos dados, é apresentar um


resultado, um insight. E você não precisa de um gráfico poluído
para isso.

Acredite, visualização de dados é quase uma arte!

www.datascienceacademy.com.br
SciPyPython
Fundamentos para
Análise de Dados

www.datascienceacademy.com.br
SciPy

SciPy é uma coleção de pacotes que tratam problemas em


domínios específicos em computação científica.

www.datascienceacademy.com.br
SciPy

SciPy e NumPy quando utilizados juntos, possuem por


exemplo as mesmas funcionalidades do Matlab.

www.datascienceacademy.com.br
SciPy

SciPy é um conjunto de algoritmos matemáticos e funções que


permitem estender as funcionalidades do Numpy.

O NumPy é na verdade, um subconjunto do SciPy.

www.datascienceacademy.com.br
SciPy

Com SciPy uma sessão interativa do Python torna-se um


ambiente de processamento de dados e sistema de
prototipagem tal como Matlab, Octave, R-Lab e SciLab.

www.datascienceacademy.com.br
SciPy

O SciPy possui uma série de pacotes para:

• Álgebra linear
• Matrizes esparas
• Números randômicos
• Transformações Fast Fourier
• Estimativa de Densidade
• Otimização
• Processamento de sinais e imagens

www.datascienceacademy.com.br
Scikit-Learn
Python
Fundamentos para
Análise de Dados

www.datascienceacademy.com.br
Scikit-Learn

Machine Learning é um dos temas mais quentes do momento em Data


Science.

A possibilidade de ensinar um software a aprender com a experiência é


algo fascinante e que abre um mundo de possibilidades.

www.datascienceacademy.com.br
Scikit-Learn

É cada vez mais comum softwares que aprendem e adquirem


novos conhecimentos através da experiência.

www.datascienceacademy.com.br
Scikit-Learn

Scikit-Learn é provavelmente a biblioteca mais poderosa para


Machine Learning em Python.

www.datascienceacademy.com.br
Scikit-Learn

Scikit-Learn é usado com NumPy, SciPy e Matplotlib,


permitindo a criação de ferramentas eficientes para Machine
Learning e modelagem estatística como classificação,
regressão, clustering e redução de dimensionalidade.

www.datascienceacademy.com.br
Scikit-Learn

Scikit-Learn é usado para criar modelos e não para leitura,


manipulação e sumarização de dados.

Existem bibliotecas específicas para isso (NumPy, Pandas,


etc…).

www.datascienceacademy.com.br
Scikit-Learn

Scikit-Learn contém ferramentas simples e eficientes para a


mineração de dados e análise de dados. Ele implementa uma
ampla variedade de algoritmos e processos de aprendizado de
máquina para realizar análises avançadas.

www.datascienceacademy.com.br
Scikit-Learn

Em geral, um problema de aprendizagem considera um


conjunto de amostras de dados e, em seguida, tenta prever
propriedades em dados desconhecidos.

www.datascienceacademy.com.br
Scikit-Learn

Os problemas de aprendizagem de máquina são divididos em 2


categorias:

Aprendizagem Supervisionada e Aprendizagem Não-supervisionada

www.datascienceacademy.com.br
Scikit-Learn

Aprendizagem Supervisionada

É o termo usado sempre que o programa é “treinado” sobre


um conjunto de dados pré-definido. Baseado no treinamento
com os dados pré-definidos, o programa pode tomar decisões
precisas quando recebe novos dados. Exemplo: Pode-se usar
um conjunto de dados de recursos humanos para treinamento
da Machine Learning, que tenha tweets marcados como
positivos, negativos e neutros e assim treinar um classificador
de análise de sentimento.

www.datascienceacademy.com.br
Scikit-Learn

A Aprendizagem Supervisionada possui duas sub-categorias:

Classificação - é o processo de tomar algum tipo de entrada e


atribuir um rótulo a ela. Sistemas de classificação são
usados ​geralmente quando as previsões são de natureza
distinta, ou seja, um simples “sim ou não”. Exemplo:
Mapeamento de uma imagem de uma pessoa e classificação
como masculino ou feminino.

www.datascienceacademy.com.br
Scikit-Learn

A Aprendizagem Supervisionada possui duas sub-categorias:

Regressão - Outra sub-categoria de aprendizagem


supervisionada usada quando o valor que está sendo previsto
difere de um “sim ou não” e que siga um espectro contínuo.
Sistemas de regressão poderiam ser usados, por exemplo, para
responder às perguntas: “Quanto custa?” ou “Quantos
existem?”.

www.datascienceacademy.com.br
Scikit-Learn

Aprendizagem Não-supervisionada

Termo usado quando um programa pode automaticamente


encontrar padrões e relações em um conjunto de dados.
Exemplo: Análise de um conjunto de dados de e-mails e
agrupamento automático de e-mails relacionados ao tema,
sem que o programa possua qualquer conhecimento prévio
sobre os dados.

www.datascienceacademy.com.br
Scikit-Learn

www.datascienceacademy.com.br
Bokeh para
Python
Fundamentos
Análise de Dados

www.datascienceacademy.com.br
Bokeh

Bokeh é uma biblioteca Python usada para visualização


interativa em web browsers.

www.datascienceacademy.com.br
Bokeh

O Bokeh permite
escrever o código em
diferentes linguagens,
como Python, R, Lua e
Julia.

www.datascienceacademy.com.br
Bokeh

Bokeh permite a construção elegante e concisa de gráficos


com interatividade de alto desempenho em conjuntos de
dados muito grandes (Big Data) ou de streaming (Real-Time
Data), de uma maneira rápida e fácil.

www.datascienceacademy.com.br
Bokeh

Principais benefícios do Bokeh:

• Bokeh permite construir gráficos estatísticos complexos de forma


rápida e através de comandos simples.
• Bokeh fornece a saída em vários meios como html e Jupyter
Notebook.
• Bokeh pode transformar visualizações escritas em outras
bibliotecas, como Matplotlib, Seaborn ou ggplot.
• Bokeh tem flexibilidade para a aplicação de interação, layouts e
diferentes opções de estilo para visualização.

www.datascienceacademy.com.br
Bokeh

www.datascienceacademy.com.br
StatsModels
Python
Fundamentos para
Análise de Dados

www.datascienceacademy.com.br
StatsModels

statsmodels.org

www.datascienceacademy.com.br
SeabornPython
Fundamentos para
Análise de Dados

www.datascienceacademy.com.br
Seaborn

A principal biblioteca de plotagem em Python é o Matplotlib.

www.datascienceacademy.com.br
Seaborn

No entanto, existem outras opções, criadas recentemente e


que vem ganhando notoriedade.

www.datascienceacademy.com.br
Seaborn

Seaborn é uma biblioteca para construir atraentes e


informativos gráficos estatísticos em Python.

www.datascienceacademy.com.br
Seaborn

Seaborn foi construído sobre o Matplotlib sendo totalmente


integrado com o PyData Stack, incluindo suporte para
estruturas NumPy e Pandas e rotinas estatísticas do SciPy e
StatsModels.

www.datascienceacademy.com.br
Seaborn

Neste site tem diversos exemplos de gráficos que podem ser


criados com Seaborn:

https://seaborn.pydata.org

www.datascienceacademy.com.br
IntroduçãoPython
à Análise
de Dados com
Fundamentos para
Análise de Dados
Python

www.datascienceacademy.com.br
Introdução

Módulos Python
Introdução à Análise Introdução ao Machine Learning
Para Análise de
de Dados em Python TensorFlow com Python
Dados

Bônus
Introdução a Deep
Learning

www.datascienceacademy.com.br
Introdução

Mini-Projeto
Aulas com Análise
Introdução à Exercício Exploratória em
Análise de Dados Conjunto de
Dados do Kaggle

www.datascienceacademy.com.br
Processo de Análise
Python
deAnálise
Dados
Fundamentos para
de Dados

www.datascienceacademy.com.br
Processo de Análise Dados

www.datascienceacademy.com.br
Processo de Análise Dados

Preparação e
Problema a Criação do Apresentação
Exploração
ser resolvido Modelo do Resultado
dos Dados

Automatizar
o Processo

www.datascienceacademy.com.br
Processo de Análise Dados

Análise Exploratória de Dados

www.datascienceacademy.com.br
Processo de Análise Dados

Lembre-se:

A qualidade dos seus outputs depende


da qualidade dos seus inputs.

www.datascienceacademy.com.br
Processo de Análise Dados

1
Problema a ser resolvido

www.datascienceacademy.com.br
Processo de Análise Dados

2
Preparação e Exploração de Dados

• Identificação das Variáveis


• Tratamento de Valores Missing
• Tratamento de Outliers
• Transformação de Variáveis
• Criação de Variáveis

www.datascienceacademy.com.br
Processo de Análise Dados

3
Criação do Modelo

www.datascienceacademy.com.br
Processo de Análise Dados

4
Automatização do Processo

www.datascienceacademy.com.br
Processo de Análise Dados

5
Apresentação do Resultado

www.datascienceacademy.com.br
Processo de Análise Dados

www.datascienceacademy.com.br
Processo de Análise Dados

Preparação e
Problema a Criação do Apresentação
Exploração
ser resolvido Modelo do Resultado
dos Dados

Automatizar
o Processo

www.datascienceacademy.com.br
Processo de Análise Dados

www.datascienceacademy.com.br
Processo de Análise Exploratória de Dados

www.datascienceacademy.com.br
IntroduçãoPythonao
TensorFlow
Fundamentos para
Análise de Dados

www.datascienceacademy.com.br
Introdução

www.datascienceacademy.com.br
CPU
Python
X
Fundamentos para
GPU
Análise de Dados

www.datascienceacademy.com.br
CPU x GPU

www.datascienceacademy.com.br
CPU x GPU

Central Graphical
Processing Unit Processing Unit

www.datascienceacademy.com.br
CPU x GPU

www.datascienceacademy.com.br
CPU x GPU

www.datascienceacademy.com.br
CPU x GPU

www.datascienceacademy.com.br
CPU x GPU

www.datascienceacademy.com.br
Machine Learning
Python
com Python
Fundamentos para
Análise de Dados

www.datascienceacademy.com.br
Introdução

www.datascienceacademy.com.br
Introdução

www.datascienceacademy.com.br
Python
OFundamentos
Que é para
Aprendizado?
Análise de Dados

www.datascienceacademy.com.br
O Que é Aprendizado?

O que é Aprendizado?

www.datascienceacademy.com.br
O Que é Aprendizado?

Aprendizado é a capacidade de se adaptar, modificar e melhorar seu


comportamento e suas respostas, sendo portanto uma das propriedades
mais importantes dos seres ditos inteligentes, sejam eles humanos ou não.

www.datascienceacademy.com.br
O Que é Aprendizado?

Correção
Otimização

Adaptação

Representação
Interação

www.datascienceacademy.com.br
O Que é Aprendizado?

Estamos tentando reproduzir o processo


de aprendizado de seres humanos em
máquinas, através de algoritmos de
Machine Learning.

www.datascienceacademy.com.br
O Que é Aprendizado?

Já podemos então definir Aprendizado de Máquina!

www.datascienceacademy.com.br
O Que é Aprendizado
Python
deFundamentos
Máquina para
(Machine Learning)?
Análise de Dados

www.datascienceacademy.com.br
O Que é Aprendizado de Máquina?

O Que é Machine Learning?

www.datascienceacademy.com.br
O Que é Aprendizado de Máquina?

Mágica?

www.datascienceacademy.com.br
O Que é Aprendizado de Máquina?

Adivinhação?

www.datascienceacademy.com.br
O Que é Aprendizado de Máquina?

Força Extraterrestre?

www.datascienceacademy.com.br
O Que é Aprendizado de Máquina?

Nenhuma das respostas anteriores!

www.datascienceacademy.com.br
O Que é Aprendizado de Máquina?

Você está preparado para a verdade?

www.datascienceacademy.com.br
O Que é Aprendizado de Máquina?

Machine Learning é Matemática, Estatística e Programação de


Computadores!

www.datascienceacademy.com.br
O Que é Aprendizado de Máquina?

Machine Learning é um subcampo da Inteligência Artificial. É o estudo e


construção de algoritmos que podem aprender a partir de dados e fazer
previsões. O aspecto iterativo do aprendizado de máquina é importante porque,
conforme os modelos são expostos a novos dados, eles são capazes de se
adaptar de forma independente.

www.datascienceacademy.com.br
O Que é Aprendizado de Máquina?

www.datascienceacademy.com.br
O Que é Aprendizado de Máquina?

Machine Learning ou Aprendizado de Máquina é um método de análise de


dados que automatiza o desenvolvimento de modelos analíticos. Usando
algoritmos que aprendem iterativamente a partir de dados, o aprendizado de
máquina permite que os computadores encontrem insights através do
reconhecimento de padrões.

www.datascienceacademy.com.br
Inteligência Artificial
x
Machine Learning
Python
Fundamentos para
x de Dados
Análise

Deep Learning

www.datascienceacademy.com.br
IA x Machine Learning x Deep Learning

Fonte: Nvidia

www.datascienceacademy.com.br
Tipos de
Python
Fundamentos para
Aprendizagem de
Análise de Dados
Máquina

www.datascienceacademy.com.br
Tipos de Aprendizagem de Máquina

Aprendizado de Máquina

Aprendizagem Aprendizagem Não


Aprendizagem Por Reforço
Supervisionada Supervisionada

www.datascienceacademy.com.br
Tipos de Aprendizagem de Máquina

Aprendizagem Supervisionada Aprendizagem Não Supervisionada

Previsão de valores ou classes Identificação de grupos (clusters) de dados

Os dados de treino precisam conter os


valores de entrada e saída, para que o
Os dados de treino contém apenas os
modelo aprenda como, a partir de
dados de entrada.
novos dados de entrada, gerar a saída
correta.

www.datascienceacademy.com.br
Aprendizagem
Python
Supervisionada
Fundamentos para
Análise de Dados

www.datascienceacademy.com.br
Aprendizagem Supervisionada

www.datascienceacademy.com.br
Aprendizagem Supervisionada

Treino

www.datascienceacademy.com.br
Aprendizagem Supervisionada

Atributos (tamanho, número de quartos, ano de construção) = dados de entrada


Preço da casa = dados de saída

www.datascienceacademy.com.br
Aprendizagem Supervisionada

Preço: Preço:
R$
248.500
???
Preço:
R$
220.000

Preço: Tamanho
Algoritmo
R$ Número de Quartos Modelo
de ML
250.000 Ano de Construção

Preço:
R$
235.000

www.datascienceacademy.com.br
Aprendizagem Supervisionada

Aprendizagem
Supervisionada

Classificação Regressão

www.datascienceacademy.com.br
Aprendizagem Supervisionada

Aprendizagem Supervisionada

É o termo usado sempre que o programa é “treinado”


sobre um conjunto de dados pré-definido.

www.datascienceacademy.com.br
Aprendizagem Supervisionada

Os algoritmos de aprendizado
supervisionado fazem previsões com
base em um conjunto de exemplos.

www.datascienceacademy.com.br
Aprendizagem Supervisionada

Os algoritmos de aprendizado
supervisionado fazem previsões com
base em um conjunto de exemplos.

www.datascienceacademy.com.br
Aprendizagem Supervisionada

Análise de Sentimentos é um
tipo de classificação, ou seja,
aprendizagem supervisionada!

www.datascienceacademy.com.br
Aprendizagem
PythonNão
Supervisionada
Fundamentos para
Análise de Dados

www.datascienceacademy.com.br
Aprendizagem Não Supervisionada

www.datascienceacademy.com.br
Aprendizagem Não Supervisionada

Alguns sistemas de recomendação que


você encontra na internet sob a forma de
automação de marketing são baseados
neste tipo de aprendizagem.

www.datascienceacademy.com.br
Aprendizagem Não Supervisionada

O aprendizado não supervisionado é


usado com dados que não possuem
rótulos históricos, ou seja, nós não temos
variáveis target (as variáveis de saída)
para serem estimadas.

www.datascienceacademy.com.br
Aprendizagem Não Supervisionada

Por exemplo, algoritmos desta categoria,


podem identificar segmentos de clientes
com atributos semelhantes que podem ser
tratados de modo semelhante em
campanhas de marketing.

www.datascienceacademy.com.br
Aprendizagem Não Supervisionada

Aprendizagem Não-Supervisionada

Termo usado quando um programa pode automaticamente


encontrar padrões e relações em um conjunto de dados,
mesmo sem saber quais são as possíveis saídas.

www.datascienceacademy.com.br
Treinamento,
Python
Validação e Teste
Fundamentos para
Análise de Dados

www.datascienceacademy.com.br
Treinamento, Validação e Teste

O processo de aprendizagem dos algoritmos de ML começa com a criação de


subsets dos seus dados, são os chamados dados de treino e dados de teste.

www.datascienceacademy.com.br
Treinamento, Validação e Teste

Treinamento, Validação e Teste

75 a 70% - dados de treino


25 a 30% - dados de teste

www.datascienceacademy.com.br
Treinamento, Validação e Teste

Treinamento, Validação e Teste

75 a 70% - dados de treino


20% - dados de validação
10% - dados de teste

www.datascienceacademy.com.br
Treinamento, Validação e Teste

É recomendável realizar a separação de forma aleatória,


independentemente da ordenação inicial dos dados.

www.datascienceacademy.com.br
Treinamento, Validação e Teste

Treinamento, Validação e Teste

n > 10.000

www.datascienceacademy.com.br
Cross-Validation

Treinamento, Validação e Teste

www.datascienceacademy.com.br
Cross-Validation

Cross-Validation

www.datascienceacademy.com.br
O Que é um Modelo
Python
Preditivo?
Fundamentos para
Análise de Dados

www.datascienceacademy.com.br
O Que é um Modelo Preditivo?

www.datascienceacademy.com.br
O Que é um Modelo Preditivo?

www.datascienceacademy.com.br
O Que é um Modelo Preditivo?

Coleta de Exploração e Treinamento


Dados Preparação do Modelo

O processo de ”fit” do modelo a um dataset é


chamado de treinamento do modelo.

www.datascienceacademy.com.br
O Que é um Modelo Preditivo?

Coleta de Exploração e Treinamento Avaliação Otimização


Preparação do Modelo do Modelo do Modelo
Dados

www.datascienceacademy.com.br
O Que é um Modelo Preditivo?

Seu trabalho como Cientista de


Dados é buscar sempre o melhor
modelo possível para suas previsões.

www.datascienceacademy.com.br
O Que é um Modelo Preditivo?

O modelo pode ser implementado


para resolver o problema de negócio
para o qual ele foi desenvolvido.

www.datascienceacademy.com.br
O Que é um Modelo Preditivo?

Lembre-se: um modelo de Machine


Learning será usado para resolver
um problema específico!

www.datascienceacademy.com.br
O Que é um Modelo Preditivo?

Não caia na tentação de querer


aplicar seu modelo a tudo que você
vê pela frente!

www.datascienceacademy.com.br
Modelo Preditivo
Python
UmFundamentos
Pouco depara
Matemática
Análise de Dados

www.datascienceacademy.com.br
Modelo Preditivo - Um Pouco de Matemática

Modelo Preditivo é uma função matemática que,


aplicada a uma massa de dados, consegue identificar
padrões ocultos e prever o que poderá ocorrer.

www.datascienceacademy.com.br
Modelo Preditivo - Um Pouco de Matemática

Modelo Preditivo

www.datascienceacademy.com.br
Modelo Preditivo - Um Pouco de Matemática

f = função desconhecida

= = aproximação da função desconhecida

www.datascienceacademy.com.br
Modelo Preditivo - Um Pouco de Matemática

www.datascienceacademy.com.br
Modelo Preditivo - Um Pouco de Matemática

Mas o que é um processo estocástico?

Fenômeno que varia em algum grau, de forma imprevisível, à


medida que o tempo passa!

Variação do tráfego em um cruzamento


Variação diária no tamanho do estoque de uma empresa
Variação minuto a minuto do índice IBOVESPA
Variação no estado de um sistema de potência
Variação no número de chamadas feitas a uma central telefônica

www.datascienceacademy.com.br
Modelo Preditivo - Um Pouco de Matemática

www.datascienceacademy.com.br
Modelo Preditivo - Um Pouco de Matemática

O objetivo do aprendizado de máquina é aprender a aproximação da função f que


melhor representa a relação entre os atributos de entrada (chamadas variáveis
preditoras) com a variável de saída (chamada de variável target).

www.datascienceacademy.com.br
O Processo
Pythonde
Aprendizagem
Fundamentos para
Análise de Dados

www.datascienceacademy.com.br
O Processo de Aprendizagem

Um componente chave do processo de


aprendizagem é a generalização.

www.datascienceacademy.com.br
O Processo de Aprendizagem

Se um algoritmo de Machine Learning não for capaz de generalizar uma função


matemática que faça previsões sobre novos conjuntos de dados, ele não está
aprendendo nada e sim memorizando os dados, o que é bem diferente.

www.datascienceacademy.com.br
O Processo de Aprendizagem

E para poder generalizar a função que melhor resolve


o problema, os algoritmos de Machine Learning se
baseiam em 3 componentes:

Representação Avaliação Otimização

www.datascienceacademy.com.br
O Processo de Aprendizagem

Os algoritmos de Machine Learning


possuem diversos parâmetros internos

www.datascienceacademy.com.br
O Processo de Aprendizagem

Otimização

www.datascienceacademy.com.br
O Processo de Aprendizagem

Espaço de
Hipóteses

www.datascienceacademy.com.br
O Processo de Aprendizagem

Nenhum algoritmo único, ou uma combinação


de algoritmos, é 100% preciso o tempo todo.

Pelo menos não ainda!!

www.datascienceacademy.com.br
O Processo de Aprendizagem

Cost Function

www.datascienceacademy.com.br
O Processo de Aprendizagem

Definindo o Erro

www.datascienceacademy.com.br
O Processo de Aprendizagem

Underfitting x Overfitting

Ok

www.datascienceacademy.com.br
O Processo de Aprendizagem

www.datascienceacademy.com.br
Elementos do
Python
Processo de
Fundamentos para
Análise de Dados
Aprendizagem

www.datascienceacademy.com.br
Elementos do Processo de Aprendizagem

Para que ocorra a


aprendizagem, é preciso que:

Não exista um
único modelo
Dados estejam
Um padrão exista matemático que
disponíveis
explique esse
padrão

www.datascienceacademy.com.br
Elementos do Processo de Aprendizagem

Aprovação de Crédito

www.datascienceacademy.com.br
Elementos do Processo de Aprendizagem

Aprovação de Crédito de um Indivíduo

Atributo Valor
Sexo Masculino
Idade 34
Salário Mensal R$ 18.000,00
Anos no Emprego Atual 3
Anos de Residência 7
Saldo Bancário R$ 32.671,94

www.datascienceacademy.com.br
Elementos do Processo de Aprendizagem

Para que ocorra a


aprendizagem, é preciso que:

Não exista um
único modelo
Dados estejam
Um padrão exista matemático que
disponíveis
explique esse
padrão

www.datascienceacademy.com.br
Elementos do Processo de Aprendizagem

Elementos do Processo de Aprendizagem

Input x {Dados do cliente}

Output y {Decisão → Crédito: Sim/Não}

Função Alvo f: x → y {Representação do relacionamento}


{Função matemática desconhecida}

Dados (x1, y1), (x2, y2),...., (xn, yn) {Dados históricos}

Hipótese g: x → y {Função a ser descoberta pelo algoritmo}

www.datascienceacademy.com.br
Elementos do Processo de Aprendizagem

Função alvo (desconhecida)


f: x à y

Dados de Treino
(x1, y1), (x2, y2),...., (xn, yn)

Hipótese Final
Algoritmo
g f

Espaço de Hipóteses

www.datascienceacademy.com.br
EspaçoFundamentos
de Hipóteses
Python
para
Análise de Dados

www.datascienceacademy.com.br
Espaço de Hipóteses

Função alvo (desconhecida)


f: x à y

• Espaço de Hipóteses
Dados de Treino
(x1, y1), (x2, y2),...., (xn, yn)

Hipótese Final
Algoritmo
g f • Algoritmo de Aprendizagem
Espaço de Hipóteses

Algoritmo de Modelo de
Espaço de Hipóteses + =
Aprendizagem Aprendizagem
Redes Neurais Backpropagation
Support Vector Machines Programação Quadrática

www.datascienceacademy.com.br
Algoritmos
Python
Fundamentos depara
Machine Learning
Análise de Dados

www.datascienceacademy.com.br
Algoritmos de Machine Learning

www.datascienceacademy.com.br
Algoritmos de Machine Learning

www.datascienceacademy.com.br
Algoritmos de Machine Learning

+ +

www.datascienceacademy.com.br
Algoritmos de Machine Learning

Algoritmos de Machine Learning

www.datascienceacademy.com.br
Algoritmos de Machine Learning

www.datascienceacademy.com.br
Algoritmos de Machine Learning

www.datascienceacademy.com.br
Algoritmos de Machine Learning

Há tantos algoritmos disponíveis com


tantos métodos diferentes, que somente o
processo de escolha de qual deve ser
usado, já vai consumir bastante do seu
tempo como Cientista de Dados.

www.datascienceacademy.com.br
Algoritmos de Machine Learning

Algoritmos de Regressão

• Ordinary Least Squares Regression (OLSR)


• Linear Regression
• Logistic Regression
• Stepwise Regression
• Multivariate Adaptive Regression Splines (MARS)
• Locally Estimated Scatterplot Smoothing (LOESS)

www.datascienceacademy.com.br
Algoritmos de Machine Learning

Algoritmos Regulatórios

• Ridge Regression
• Least Absolute Shrinkage and Selection Operator (LASSO)
• Elastic Net
• Least-Angle Regression (LARS)

www.datascienceacademy.com.br
Algoritmos de Machine Learning

Algoritmos Baseados em Instância (Instance-based)

• k-Nearest Neighbour (kNN)


• Learning Vector Quantization (LVQ)
• Self-Organizing Map (SOM)
• Locally Weighted Learning (LWL)

www.datascienceacademy.com.br
Algoritmos de Machine Learning

Algoritmos de Árvore de Decisão

• Classification and Regression Tree (CART)


• Conditional Decision Trees
• Iterative Dichotomiser 3 (ID3)
• C4.5 and C5.0
• Chi-squared Automatic Interaction Detection (CHAID)
• Decision Stump
• M5

www.datascienceacademy.com.br
Algoritmos de Machine Learning

Algoritmos Bayesianos

• Naive Bayes
• Gaussian Naive Bayes
• Multinomial Naive Bayes
• Averaged One-Dependence Estimators (AODE)
• Bayesian Belief Network (BBN)
• Bayesian Network (BN)

www.datascienceacademy.com.br
Algoritmos de Machine Learning

Algoritmos de Clustering

• k-Means
• k-Means ++
• k-Medians
• Expectation Maximization (EM)
• Hierarchical Clustering

www.datascienceacademy.com.br
Algoritmos de Machine Learning

Algoritmos Baseados em Regras de Associação

• Apriori algorithm
• Eclat algorithm

www.datascienceacademy.com.br
Algoritmos de Machine Learning

Redes Neurais Artificiais

• Perceptron
• Multilayer Perceptron
• BackPropagation
• Hopfield Network
• Radial Basis Function Network (RBFN)

www.datascienceacademy.com.br
Algoritmos de Machine Learning

Deep Learning

• Convolutional Neural Network


(CNN)
• Recurrent Neural Network (RNN)
• Deep Boltzmann Machine (DBM)
• Deep Belief Networks (DBN)
• Stacked Auto-Encoders
• Generative Adversarial Network

www.datascienceacademy.com.br
Algoritmos de Machine Learning

Algoritmos de Redução de Dimensionalidade


• Principal Component Analysis (PCA)
• Principal Component Regression (PCR)
• Partial Least Squares Regression (PLSR)
• Multidimensional Scaling (MDS)
• Linear Discriminant Analysis (LDA)
• Mixture Discriminant Analysis (MDA)
• Quadratic Discriminant Analysis (QDA)
• Flexible Discriminant Analysis (FDA)

www.datascienceacademy.com.br
Algoritmos de Machine Learning

Algoritmos Ensemble
• Boosting
• Bootstrapped Aggregation (Bagging)
• AdaBoost
• Stacked Generalization (blending)
• Gradient Boosting Machines (GBM)
• Gradient Boosted Regression Trees (GBRT)
• Random Forest

www.datascienceacademy.com.br
Algoritmos de Machine Learning

Outros Algoritmos/Modelos
• Support Vector Machines
• Computer Vision (CV)
• Natural Language Processing (NLP)
• Sistemas de Recomendação
• Graph Models

www.datascienceacademy.com.br
Algoritmos de Machine Learning

www.datascienceacademy.com.br
Algoritmos de Machine Learning

www.datascienceacademy.com.br
Algoritmos de Machine Learning

Agora você entende porque os Cientistas de Dados são profissionais


escassos no mercado e porque capacitar um Cientista de Dados
(profissional) leva tempo. E compreende também, porque esse tipo de
profissional deve ser muito bem remunerado!

E Machine Learning é apenas parte do trabalho de um Cientista de Dados!

www.datascienceacademy.com.br
Machine Learning
Python
Workflow
Fundamentos para
Análise de Dados

www.datascienceacademy.com.br
Machine Learning Workflow

Machine Learning Workflow

Conjunto de etapas que sistematicamente


transforma e processa dados a fim de criar soluções
preditivas.

www.datascienceacademy.com.br
Machine Learning Workflow

Teste e
Business Preparação Seleção do Treinamento
Avaliação
Problem de Dados Algoritmo do Modelo
do Modelo

www.datascienceacademy.com.br
Machine Learning Workflow

Ufa, acabou??

Consegui fazer Machine


Learning?

www.datascienceacademy.com.br
Machine Learning Workflow

Teste e
Business Preparação Seleção do Treinamento
Avaliação
Problem de Dados Algoritmo do Modelo
do Modelo

www.datascienceacademy.com.br
Machine Learning Workflow

Dicas:

A etapa de preparação dos dados é uma das mais


importantes. Lembre-se: a qualidade dos seus outputs
será equivalente a qualidade dos seus inputs.

www.datascienceacademy.com.br
Machine Learning Workflow

Dicas:

À medida que você caminha pelo processo, percebe a


necessidade de modificar etapas anteriores. Isso é normal e
esperado.

www.datascienceacademy.com.br
Machine Learning Workflow

Dicas:

Os dados raramente virão prontos, organizados e


limpos.
É seu trabalho fazer isso.

www.datascienceacademy.com.br
Machine Learning Workflow

Dicas:

Mais dados = Melhores resultados

Por isso Big Data está revolucionando o mundo!!

www.datascienceacademy.com.br
Machine Learning Workflow

Dicas:

Não perca tempo com uma solução ruim. Avalie,


otimize e se perceber que o resultado esperado não
será alcançado, descarte e comece novamente!

www.datascienceacademy.com.br
Business Problem
Python
Definindo o
Fundamentos para
Análise de Dados
Problema de Negócio

www.datascienceacademy.com.br
Business Problem

• Definir o escopo
• Definir os níveis de
Definindo os performance do modelo
Objetivos preditivo
• Definir o contexto
• Definir como a solução será
criada

www.datascienceacademy.com.br
Business Problem

Se você não sabe para onde vai, qualquer caminho


serve!

Defina claramente os objetivos que devem ser


alcançados para a solução do problema
apresentado!

www.datascienceacademy.com.br
Business Problem

• Definir as fontes de dados


• Compreender os atributos dos dados
coletados
Prever se uma
• Selecionar as ferramentas de análise
pessoa irá
mais adequadas
desenvolver
• Definir o resultado esperado. Neste
diabetes
caso: Verdadeiro ou Falso
• Definir o nível de acurácia: 70% de
precisão

www.datascienceacademy.com.br
Business Problem

Definir, com 70% de precisão ou mais, se uma


pessoa pode ou não desenvolver diabetes.

www.datascienceacademy.com.br
IntroduçãoPython
a Deep
Learning
Fundamentos para
Análise de Dados

www.datascienceacademy.com.br
Introdução

www.datascienceacademy.com.br
Introdução

Lisa – Robô Advogada

http://robotlawyerlisa.com

Ross – Robô Advogado

https://rossintelligence.com

www.datascienceacademy.com.br
Introdução

www.datascienceacademy.com.br
Introdução

E o que essas aplicações tem em


comum?

www.datascienceacademy.com.br
Introdução

www.datascienceacademy.com.br
Introdução

Deep Learning
Deep Learning I Deep Learning II
Frameworks

www.datascienceacademy.com.br
Introdução

O objetivo deste capítulo é oferecer a


você uma introdução a uma das áreas
mais incríveis na aprendizagem de
máquina, Deep Learning!

www.datascienceacademy.com.br
Por que Aprender
Python
DeepAnálise
Learning?
Fundamentos para
de Dados

www.datascienceacademy.com.br
Por que Aprender Deep Learning?

www.datascienceacademy.com.br
Por que Aprender Deep Learning?

www.datascienceacademy.com.br
Por que Aprender Deep Learning?

www.datascienceacademy.com.br
Por que Aprender Deep Learning?

www.datascienceacademy.com.br
Por que Aprender Deep Learning?

www.datascienceacademy.com.br
Por que Aprender Deep Learning?

www.datascienceacademy.com.br
Deep Learning
Python
Áreas de Aplicação
Fundamentos para
Análise de Dados

www.datascienceacademy.com.br
Deep Learning – Áreas de Aplicação

www.datascienceacademy.com.br
Deep Learning – Áreas de Aplicação

Compreendendo
Comportamento do Cliente

Objetivo
Entender o comportamento do cliente e sua
propensão para comprar um produto
específico.

www.datascienceacademy.com.br
Deep Learning – Áreas de Aplicação

Reconhecimento de Faces

Objetivo
Identificar, detectar e rastrear pessoas de
interesse, veículos estacionados, falta de
bagagem e muito mais usando CCTVs ou
outras câmeras high-end.

www.datascienceacademy.com.br
Deep Learning – Áreas de Aplicação

Suporte Técnico Personalizado


e Assistentes Pessoais

Objetivo
Melhorar a eficiência do trabalho de uma
organização através da instalação de uma
unidade de equipe de suporte baseada em
chatbots que usam Inteligência Artificial, em
vez de contratar mão-de-obra manual.

www.datascienceacademy.com.br
Deep Learning – Áreas de Aplicação

Mineração com Redes Neurais


Convolucionais

Objetivo
Detectar depósitos minerais usando imagens
de satélite multi-espaciais que ajudam a
encontrar recursos minerais.

www.datascienceacademy.com.br
Deep Learning – Áreas de Aplicação

Classificação Automática de
Doenças Oculares

Objetivo
Simplificar os processos que conduzem à
detecção de doenças oculares, proporcionando
aos pesquisadores orientação baseada em
informações históricas.

www.datascienceacademy.com.br
Deep Learning – Áreas de Aplicação

Redução da Taxa de Erro no


Diagnóstico de Câncer

Objetivo
Usar dados compactos para habilitar o
diagnóstico rápido e sem erros.

www.datascienceacademy.com.br
Deep Learning – Áreas de Aplicação

Carros Autônomos

Objetivo
Criar um sistema que entenda conexões entre
vários conjuntos de dados.

www.datascienceacademy.com.br
Redes Neurais
Python
Artificiais
Fundamentos para
Análise de Dados

www.datascienceacademy.com.br
Redes Neurais Artificiais

www.datascienceacademy.com.br
Redes Neurais Artificiais

O cérebro humano é verdadeiramente


a máquina mais incrível do planeta
Terra. E estamos tentando reproduzir
seu funcionamento nos computadores!

www.datascienceacademy.com.br
Redes Neurais Artificiais

www.datascienceacademy.com.br
Redes Neurais Artificiais

O cérebro humano tem sido


extensamente estudado, mas ainda não
somos capazes de entender
completamente o seu funcionamento.

www.datascienceacademy.com.br
Redes Neurais Artificiais

www.datascienceacademy.com.br
Redes Neurais Artificiais

Com Redes Neurais Artificiais,


tentamos programar um computador
de modo a fazê-lo imitar um
comportamento inteligente (saber
jogar xadrez, compreender e manter
um diálogo, traduzir línguas
estrangeiras, resolver problemas de
matemática, etc.)

www.datascienceacademy.com.br
Redes Neurais Artificiais

Uma Rede Neural Artificial modela a


relação entre um conjunto de sinais
de entrada e um sinal de saída
usando um modelo derivado de
nossa compreensão de como um
cérebro biológico responde a
estímulos de entradas sensoriais.

www.datascienceacademy.com.br
Redes Neurais Artificiais

• Cérebro humano – 85 bilhões de neurônios


• Cérebro de um gato – 1 bilhão de neurônios
• Cérebro de um rato – 75 milhões de neurônios
• Cérebro de uma barata – 1 milhão de neurônios

www.datascienceacademy.com.br
Redes Neurais Artificiais

Agora você entende porque a


computação paralela em GPU’s está
acelerando o desenvolvimento de
sistemas inteligentes, pois somos
capazes de processar cada vez mais
dados em redes neurais artificiais com
cada vez mais neurônios.

www.datascienceacademy.com.br
Redes Neurais Artificiais

As Redes Neurais Artificiais são modelos versáteis que podem ser aplicadas
a quase todas as tarefas de aprendizagem: classificação, previsão numérica
e mesmo reconhecimento não supervisionado de padrões.

www.datascienceacademy.com.br
Redes Neurais Artificiais

As redes neurais artificiais são melhor aplicadas a problemas onde os dados de


entrada e os dados de saída são bem definidos ou, pelo menos, bastante simples,
mas o processo que relaciona a entrada com a saída é extremamente complexo

www.datascienceacademy.com.br
Uma BrevePython
História
das Redes Neurais
Fundamentos para
Análise de Dados
Artificiais

www.datascienceacademy.com.br
Uma Breve História das Redes Neurais Artificiais

→ Cérebro humano, a máquina mais


fantástica que existe no Planeta Terra.

www.datascienceacademy.com.br
Uma Breve História das Redes Neurais Artificiais

www.datascienceacademy.com.br
O Que São Redes
NeuraisFundamentos
Profundaspara
Python
ou
DeepAnálise
Learning?
de Dados

www.datascienceacademy.com.br
O Que São Redes Neurais Profundas ou Deep Learning?

John McCarthy
Considerado o Pai da Inteligência Artificial

www.datascienceacademy.com.br
O Que São Redes Neurais Profundas ou Deep Learning?

www.datascienceacademy.com.br
www.datascienceacademy.com.br
O Que São Redes Neurais Profundas ou Deep Learning?

A Inteligência Artificial busca ensinar computadores a executar tarefas que


são fáceis para os seres humanos, mas que não podem ser descritas
formalmente ou são muito complexas para computadores, como
reconhecimento de voz e imagens.

www.datascienceacademy.com.br
O Que São Redes Neurais Profundas ou Deep Learning?

www.datascienceacademy.com.br
O Que São Redes Neurais Profundas ou Deep Learning?

Se desenharmos um gráfico mostrando


como esses conceitos são construídos
um sobre o outro, o gráfico é profundo,
com muitas camadas. Por esta razão,
nós chamamos esta abordagem da
Inteligência Artificial, de Aprendizagem
Profunda ou Deep Learning.

www.datascienceacademy.com.br
O Que São Redes Neurais Profundas ou Deep Learning?

www.datascienceacademy.com.br
O Que São Redes Neurais Profundas ou Deep Learning?

www.datascienceacademy.com.br
O Que São Redes Neurais Profundas ou Deep Learning?

www.datascienceacademy.com.br
Convolutional Neural
Python
Fundamentos para
Networks
Análise de Dados

www.datascienceacademy.com.br
Convolutional Neural Networks

www.datascienceacademy.com.br
Convolutional Neural Networks

www.datascienceacademy.com.br
Convolutional Neural Networks

www.datascienceacademy.com.br
Convolutional Neural Networks

www.datascienceacademy.com.br
Convolutional Neural Networks

www.datascienceacademy.com.br
Convolutional Neural Networks

www.datascienceacademy.com.br
Convolutional Neural Networks

www.datascienceacademy.com.br
RecurrentPython
Neural
Fundamentos para
Networks
Análise de Dados

www.datascienceacademy.com.br
Recurrent Neural Networks

www.datascienceacademy.com.br
Recurrent Neural Networks

A ideia por trás das RNNs é fazer


uso de informações sequenciais.

www.datascienceacademy.com.br
Recurrent Neural Networks

Redes Neurais Recorrentes


(Recurrent Neural Networks, RNN’s)
constituem uma ampla classe de
redes cuja evolução do estado
depende tanto da entrada corrente
quanto do estado atual.

www.datascienceacademy.com.br
Recurrent Neural Networks

O tipo mais comumente usado de RNNs


são as LSTMs (Long Short-Term Memory),
que são muito melhores na captura de
dependências de longo prazo do que
RNNs padrões.

www.datascienceacademy.com.br
Recurrent Neural Networks

A arquitetura usada em RNNs é adequada para permitir o


processamento de informação sequencial (textos, áudio e vídeo).

www.datascienceacademy.com.br
Recurrent Neural Networks

Unidades de Entrada Unidades Ocultas Unidades de Saída

www.datascienceacademy.com.br
Recurrent Neural Networks

Retropropagação através do tempo


(Backpropagation Through Time, BPTT)

www.datascienceacademy.com.br
Recurrent Neural Networks

www.datascienceacademy.com.br
Recurrent Neural Networks

Percebeu porque precisamos de 3 cursos inteiros


para falar apenas de Deep Learning??

www.datascienceacademy.com.br
Deep Learning
Python
Frameworks
Fundamentos para
Análise de Dados

www.datascienceacademy.com.br
Deep Learning Frameworks
Framework Descrição
Biblioteca de computação usando grafos de fluxo de dados para aprendizagem
TensorFlow
de máquina escalável.
Caffe Framework open-source veloz para Deep Learning.
Biblioteca Deep Learning para Python com suporte para Convnets e Redes
Keras
Neurais Recorrentes. Funciona com Theano e TensorFlow.
Microsoft CNTK Microsoft Computational Network Toolkit (CNTK).
Torch Biblioteca de Deep Learning
Biblioteca Python que permite definir, otimizar e avaliar expressões matemáticas
Theano
envolvendo arrays multidimensionais de forma eficiente.
Lasagne Biblioteca leve para construir e treinar redes neurais com Theano.
DeepLearning4J Deep Learning para Java, Scala & Clojure no Hadoop e Spark.
Biblioteca da Deep Learning, projeto da Apache Foundation e patrocinado pela
MXNet
Amazon.
www.datascienceacademy.com.br
Desenvolvimento
Python
Fundamentos para
Web de Dados
Análise

www.datascienceacademy.com.br
Introdução

www.datascienceacademy.com.br
Introdução

As aplicações web são


executadas no navegador do
usuário, ou seja, não é
necessário instalar no
computador.

www.datascienceacademy.com.br
Introdução

E a linguagem Python, por ser de uso


geral, permite o desenvolvimento de
aplicações web, que podem ser usadas,
por exemplo, para a publicação de
aplicações analíticas como resultado de
um processo de Data Science.

www.datascienceacademy.com.br
Introdução

Este capítulo é uma breve introdução ao universo do desenvolvimento


web com linguagem Python e sua relação com a Ciência de Dados.

www.datascienceacademy.com.br
O Que é
Python
Desenvolvimento
Fundamentos para
Web?
Análise de Dados

www.datascienceacademy.com.br
O Que é Desenvolvimento Web?

Desenvolvimento Web é o termo usado para descrever a criação de


softwares, que são usados via web. Esses softwares são normalmente
desenvolvidos para realizar operações em tempo real.

www.datascienceacademy.com.br
O Que é Desenvolvimento Web?

Front-End Back-End

Full-Stack Web Developer

www.datascienceacademy.com.br
O Que é Desenvolvimento Web?

Front-End Back-End Banco de Dados

PHP MySQL
HTML
ASP PostgreSQL
CSS
.NET SQLite
XHTML
Node.js (JavaScript) Firebird
JavaScript
Java (J2EE) SQL Server
Ajax
Python (Django, Flask) Oracle
Flash
Ruby (Ruby on Rails) DB2

Web Design, Arquitetura da Informação, Usabilidade, Acessibilidade

www.datascienceacademy.com.br
Diferenças Entre
Python
Aplicações Webpara
Fundamentos e
Tradicionais
Análise de Dados

www.datascienceacademy.com.br
Diferenças Entre Aplicações Web e Tradicionais

Aplicações Web são executadas


via browser, enquanto
aplicações tradicionais devem
ser instaladas no computador ou
acessadas em uma arquitetura
cliente/servidor.

www.datascienceacademy.com.br
Diferenças Entre Aplicações Web e Tradicionais

Aplicações Tradicionais

• Requerem hardware mais específico


• Podem ter problemas de incompatibilidade de SO
• Manutenção mais complexa
• Dificuldade de atualização
• Risco de segurança
• Difícil escalabilidade

www.datascienceacademy.com.br
Diferenças Entre Aplicações Web e Tradicionais

Aplicações Web

• Acesso via browser


• Indiferente do SO do usuário
• Facilidade de manutenção e atualização
• Segurança centralizada
• Alta escalabilidade
• Facilidade de uso e menos treinamento do usuário
• Integração facilitada

www.datascienceacademy.com.br
Como Funciona
Python Uma
Aplicação Web
Fundamentos para
Análise de Dados

www.datascienceacademy.com.br
Como Funciona Uma Aplicação Web

Resposta
do HTTP
Métodos
HTTP (GET,
Protocolo
POST)
HTTP
Solicitações
dos
Servidor
Usuários
Web

www.datascienceacademy.com.br
Cientista de Dados
x Python
Fundamentos para
Full-Stack Web
Análise de Dados
Developer

www.datascienceacademy.com.br
Cientista de Dados x Full-Stack Web Developer

Cientista de Dados Full-Stack Web Developer

Matemática e Estatística Programação


Programação (Python, R, Scala ou Java) Engenharia de Software
Banco de Dados Relacional e NoSQL HTML, CSS
Linguagem SQL PHP, ASP, Node.js
Machine Learning e Deep Learning Python, Ruby, Java
Armazenamento e Processamento Banco de Dados Relacional e NoSQL
Distribuído de Big Data Linguagem SQL
Inteligência Artificial Design Gráfico

www.datascienceacademy.com.br
WebFundamentos
Scrapingpara
Python

Análise de Dados

www.datascienceacademy.com.br
Introdução

www.datascienceacademy.com.br
O Que é Webpara
Python
Fundamentos
Scraping?
Análise de Dados

www.datascienceacademy.com.br
O Que é Web Scraping?

Web Scraping é uma técnica de software de computador para


extrair dados de páginas web. Essa técnica concentra-se
principalmente na transformação de dados não estruturados
(formato HTML) na Web em dados estruturados (banco de dados
ou planilhas).

www.datascienceacademy.com.br
Web Scraping
Python
X
Fundamentos para
Web Crawling
Análise de Dados

www.datascienceacademy.com.br
Web Scraping x Web Crawling

www.datascienceacademy.com.br
Web Scraping x Web Crawling

Web Scraping: o ato de baixar automaticamente os


dados de uma página web e extrair informações muito
específicas dela.

As informações extraídas podem ser armazenadas


praticamente em qualquer lugar (banco de dados,
arquivo, etc.).

Web Scraping, também conhecido como Extração de


Dados da Web, é uma maneira automatizada de extrair
informações/conteúdo usando bots, conhecidos como
scrapers.

Aqui, as informações podem ser usadas para replicar


em algum outro site ou podem ser usadas para análise
de dados.

www.datascienceacademy.com.br
Web Scraping x Web Crawling

Web Crawling: o ato de baixar automaticamente os


dados de uma página web, extrair os hiperlinks
contidos nela e segui-los.

Os dados baixados são geralmente armazenados em


um índice ou banco de dados para facilitar sua busca.

Web Crawling, também conhecido como Indexação, é


usado para indexar as informações em uma página
web usando bots, também chamados de crawlers. Web
Crawlers são basicamente utilizados pelos principais
motores de busca como o Google, Bing e Yahoo.

www.datascienceacademy.com.br
Web Scraping x Web Crawling

Com Web Crawling obtemos informações genéricas e com


Web Scraping, obtemos informações específicas.

www.datascienceacademy.com.br
Tags HTML para
Python
Fundamentos
Análise de Dados

www.datascienceacademy.com.br
Tags HTML
Essa sintaxe tem várias tags conforme abaixo:

• <! DOCTYPE html>: documentos HTML devem começar com


uma declaração de tipo

• O documento HTML está contido entre <html> e </ html>

• A parte visível do documento HTML está entre <body> e </


body>

• Os títulos HTML são definidos com as tags <h1> a <h6>

• Os parágrafos HTML são definidos com a tag <p>

www.datascienceacademy.com.br
Muito Obrigado!
Continue Trilhando uma Excelente Jornada de Aprendizagem.

www.datascienceacademy.com.br

Você também pode gostar