Garimpagem de Dados

Aula 1 - Python Básico

04/10/2017

Nulo


In [ ]:
a = None
if a is None:
    print('nulo')

Boolean


In [ ]:
a = True
b = False
c = True
print(a == b)
print(a == c)

In [ ]:
a, b, c  = True, False, True
print(a == b)
print(a == c)

Números


In [ ]:
1 + 2

In [ ]:
type(1)

In [ ]:
type(1.2)

In [ ]:
1 // 2

In [ ]:
1 / 2

In [ ]:
1 / 2.0

In [ ]:
from __future__ import division
1 / 2

In [ ]:
2 ** 3

In [ ]:
2 ** 0.5

In [ ]:
import math
math.sqrt(2)

In [ ]:
import random
print(random.random())
print(random.randint(1,10))   # intervalo fechado
print(random.randrange(1,10))

Strings


In [ ]:
single_quoted_string = 'Data Science'
single_quoted_string

In [ ]:
repr(single_quoted_string)

In [ ]:
len(single_quoted_string)

In [ ]:
type(single_quoted_string)

In [ ]:
single_quoted_string.upper()

In [ ]:
single_quoted_string.lower()

In [ ]:
str1 = 'Hoje_vai_chover_novamente.'.replace('_', ' ')
print(str1)

In [ ]:
double_quoted_string = "data science"
print(double_quoted_string)
print(repr(double_quoted_string))
double_quoted_string

In [ ]:
tab_string = "\t"        # representa o caracter 'tab'
print(tab_string)
print(repr(tab_string))

In [ ]:
not_tab_string = r"\t"   # representa os caracteres '\' e 't'
print(not_tab_string)
print(repr(not_tab_string))

In [ ]:
multi_line_string = """linha 1.
linha 2
linha 3"""
print(multi_line_string)
print(repr(multi_line_string))

In [ ]:
'Repete ' * 5

In [ ]:
"%d/%d/%d" % (2, 4, 6)

In [ ]:
"%s/%s/%s" % (2, 4, 6)

In [ ]:
"{}/{}/{}".format(2, 4, 6)

In [ ]:
"{:2d}/{:2d}/{:2d}".format(2, 4, 16)

In [ ]:
"{:02d}/{:02d}/{:02d}".format(2, 4, 16)

In [ ]:
'{:.2f}'.format(99.8765)

In [ ]:
'{:.0f}'.format(99.8765)

In [ ]:
'%05d' % (99)

In [ ]:
'{:05d}'.format(99)

In [ ]:
' Hello '.strip()

In [ ]:
' Hello '.lstrip()

In [ ]:
' Hello '.rstrip()

Data


In [ ]:
from datetime import datetime
import time

inicio = datetime.now()
print(inicio)
for i in range(2):
    time.sleep(1)
fim = datetime.now()
print(fim)
print("Tempo de execução: {}".format(fim - inicio))

Listas

  • Mutáveis

In [ ]:
lista = [1, 2, 3, 4, 5]
print(lista)

In [ ]:
lista[2]

In [ ]:
lista[-1] # último elemento

In [ ]:
lista[1:3]

In [ ]:
a, b = lista[1:3]
a, b

In [ ]:
lista[:3] # 3 primeiros elementos

In [ ]:
lista[-2:] # 2 últimos elementos

In [ ]:
lista[1:-1] # do segundo ao penúltimo elemento

In [ ]:
len(lista)

In [ ]:
sum(lista)

In [ ]:
10 in lista

In [ ]:
5 in lista

In [ ]:
lista.append(7)
lista.append(6)
lista.append(7)
lista

In [ ]:
lista.remove(7)  # remove o primeiro elemento cujo valor é 7
lista

In [ ]:
lista.extend([8, 9, -10])
lista

In [ ]:
lista2 = lista  # lista2 referencia lista
lista2[-1] = 10
print(lista)
print(lista2)

In [ ]:
lista3 = lista[:]  # lista3 é uma nova lista com o mesmo conteúdo de lista
lista3[-1] = -10
print(lista)
print(lista3)

In [ ]:
print(range(5))

In [ ]:
print(range(2, 10, 2))

In [ ]:
print(range(5, 0, -1))

In [ ]:
lista4 = [-4, 1, -2, 3]
print(sorted(lista4)) # ordena sem alterar a lista
print(sorted(lista4, reverse=True))
print(sorted(lista4, key=abs))
print(lista4)

In [ ]:
lista4.sort() # altera a lista original
print(lista4)

In [ ]:
a = ['a', 'casa', 'está', 'muito', 'bem', 'organizada']
print(' '.join(a))

In [ ]:
import random
random.shuffle(a)
print(a)
random.shuffle(a)
print(a)

In [ ]:
random.choice(a) # com repetição

In [ ]:
# Loteria
numeros = range(1, 100)
random.sample(numeros, 5) # sem repetição

List Comprehensions


In [ ]:
quadrados = [x * x for x in range(5)]
print(quadrados)

In [ ]:
# conta quantos elementos da lista são maiores que 4
sum([1 for x in quadrados if x > 4])

Matrizes


In [ ]:
matriz = [ [1, 2, 3],
           [4, 5, 6],
           [7, 8, 9] ]
print(matriz)

Tuplas

  • Imutáveis

In [ ]:
tupla = (1, 2, 3, 4)
print(tupla)

Dicionários


In [ ]:
dicionario = { 'nome': 'Fulano', 'sobrenome': 'Da Silva' }
print(dicionario['nome'])
print(dicionario['sobrenome'])

In [ ]:
dicionario.keys()

In [ ]:
dicionario.values()

Merge de dicionários


In [ ]:
x = {'a':1, 'b': 2}
y = {'b':10, 'c': 11}
x.update(y)
print(x)

Pack e Unpack


In [ ]:
list1 = ['a', 'b', 'c']
list2 = [1, 2, 3]
list3 = zip(list1, list2)  # PACK
print(list3)
list4, list5 = zip(*list3)  # UNPACK
print(list4)
print(list5)

Conjuntos (Sets)

Coleção de elementos distintos.


In [ ]:
s = set([1, 2])
print(type(s))
print(s)
s.add(3)
s.add(3)
s.add(4)
print(s)
print(len(s))
print(2 in s) 
print(3 in s)

Liberando espaço alocado para variáveis


In [ ]:
a = [2, 4, 6, 8, 10]
print(a)
del(a)
print(a)

Condições


In [ ]:
valor = 99
if valor == 99:
    print 'veloz' 
elif value > 200:
    print 'muito veloz' 
else:
    print 'lento'

Operador ternário


In [ ]:
x = 5
par_ou_impar = "par" if x % 2 == 0 else "impar"
print(par_ou_impar)

Laços / Loops


In [ ]:
a = [1, 3, 4, 5, 7]
for i in a:
    print(i)

In [ ]:
a = [1, 3, 4, 5, 7]
for indice, valor in enumerate(a):
    print(indice, valor)

In [ ]:
for _ in xrange(5):
    print('oi')

In [ ]:
a = [2, 4, 6]
for i in xrange(len(a)):
    print 'indice:{}, valor:{}'.format(i, a[i])

In [ ]:
a = [2, 4, 6]
for indice, valor in enumerate(a):
    print 'indice:{}, valor:{}'.format(indice, valor)

In [ ]:
x = 0
while x < 5:
    print x
    x += 1

In [ ]:
for x in xrange(10):
    if x == 3:
        continue
    if x == 5:
        break
    print x

In [ ]:
import itertools
a = [1, 2, 3]
b = [4, 5]
c = [6, 7, 8]
for a_, b_, c_ in itertools.product(a, b, c):
    print('a:{}, b:{}, c:{}'.format(a_, b_, c_))

Funções


In [ ]:
def soma(a, b):
    return a + b

print(soma(3, 5))
print(soma('casa ', 'organizada'))

Manipulação de Arquivos


In [ ]:
file = open('iris-dataset.txt')
print(file.name)
print(file.mode)
print(file.closed)
file.close()
print(file.closed)

Próxima Aula

Bibliotecas Python para Manipulação de Dados

06/10/2017

  • NumPy - Computação numérica. Manipulação de arrays n-dimensionais de forma eficiente.
  • Matplotlib - Visualização de Dados. Criação de gráficos 2D/3D.
  • pandas - Ferramentas e estruturas de dados para facilitar a organização e análise dos dados.