Buscar

Resumo Python Básico

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 25 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 25 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 25 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Python 
Python é uma linguagem interpretada (que precisa de um interpretador para ser executada).
O código fonte é traduzido em byte code, que é multiplataforma, podendo ser rodado em qualquer sistema operacional.
Existem 3 modos de executar um código em python:
· Modo shell: linha a linha
· Modo script: salva o código em um arquivo .py
· Modo interativo: cria notebook com jupyter notebook
Glossário
· Atributos: propriedades que as estruturas de dados possuem. Acessado usando (.)
objeto.atributo
· Métodos: rotinas associadas às propriedades. Acessado usando (.)
objeto.método(parâmetros)
· Mapeamento: coleção de objetos armazenados por uma chave, ao contrário de uma sequência de objetos armazenados por sua posição relativa
Programação
Comentários
# ou “”” no início e fim.
Tipos de dados
· INT
· FLOAT
Operadores
Podem ser aritméticos, relacionais, de atribuição e lógicos.
· + soma
· - diminuição
· * multiplicação
· / divisão
· ** potência
· % dá o resto da divisão (módulo)
· == igualdade
· != desigualdade
· = atribuição
· // divisão que retorna resultado inteiro quando numerador e denominador forem inteiros
· z += 10 equivale a z = z + 10 (equivalente para os demais operadores matemáticos)
· NOT operador lógico que reverte o estado da lógica
· IN usado para checar se um elemento está dentro de uma lista ou dicionário
· data1 – data2 passa em dias a diferença entre essas datas
Palavras Reservadas
· 
· AND
· AS
· ASSERT
· BREAK
· CLASS
· CONTINUE
· DEF
· DEL
· ELIF
· ELSE
· EXCEPT
· FALSE
· FINALLY
· FOR
· FROM
· GLOBAL
· IF
· IMPORT
· IN
· IS
· LAMBDA
· NONE
· NONLOCAL
· NOT
· OR
· PASS
· RAISE
· RETURN
· TRUE
· TRY
· WHILE
· WITH
· YIELD
Placeholders
Considere o exemplo abaixo:
· %s pega o primeiro resultado retornado
· %r pega o segundo resultado retornado
Operações com variáveis
Declaração Múltipla
Você pode fazer declaração múltipla da seguinte forma.
x, y, z = 1, 2, 3
x = y = z = 1
Strings
Definição
Pode usar “ ou ‘, podendo ter ‘ dentro da string como: “d’água”
Representação de caracteres
· \n equivale ao Enter
Concatenação
A Concatenação é assim:
nome_completo = nome + “ “ + sobrenome
Você pode definir uma variável (letra = “w”) e multiplicá-la (letra * 3) que retorna “www”
Indexando Strings
Usa-se [] para representar o índice de um objeto, começando por 0.
texto = “python”
texto[2] é “t”
Slicing
· S[1:] pega toda a string a partir do caractere 1
· S[:3] pega toda a string até o caractere 3, não inclusive
· S[:] retorna tudo
· S[-1] retorna o último caractere
· S[:-1] retorna tudo menos a última letra
· S[::2] retorna todos os caracteres saltando 2 posições (1 sim, 1 não)
· S[::-1] retorna todos os caracteres saltando 1 posição (ou seja, trazendo tudo), mas de trás para frente
Você pode, por exemplo, gravar os primeiros caracteres de um texto em um arquivo usando:
arquivo.write(texto[:10])
Listas
As listas não precisam ter todos os elementos do mesmo tipo.
lista = [x1, x2, x3]
lista = [“ovo”, “banana”, 45]
Mudando elemento da lista: lista[2] = 33
Excluindo elemento da lista: del lista[1]
LIST(RANGE(5)) cria uma lista de 0 a 4
Lista aninhada
É uma lista dentro de outra lista, ou seja, uma matriz.
matrix = [[1,2,3] , [4,5,6]]
lista = matrix[0] [1,2,3]
lista[0] 1
matrix[0][1] 2
matrix[0] + matrix[1] [1,2,3,4,5,6]
vazio = [] cria uma lista vazia
Dicionários
São tabelas de hash, mapeamentos de chaves e valores com vírgulas separando cada elemento.
dicio_idades = {“Fernando”: 30, “Nico”: 2}
dicio_idades[“Fernando”] 30
Você pode incluir novas chaves assim: dicio_idades[“Pedro”] = 23
Você pode deletar o dicionário: del dicio_idades
Tuplas
São listas imutáveis. Usam o separador parênteses em vez de colchetes. São ideais para listas que não devem ser alteradas, como dia da semana ou meses do ano. Não adicionar, alterar ou excluir um item depois que tiver sido criada.
Para alterar uma tupla, você pode convertê-la em lista, alterar a lista e converter de volta para tupla.
Condicionais
Notação:
Loops
FOR
Notação:
Funciona para tuplas, listas, dicionários, ranges, arquivos e strings.
WHILE
Notação:
Cláusulas usadas em loops
ELSE
A cláusula ELSE no WHILE é acionada quando a condição do WHILE deixa de ser verdadeira.
PASS
A cláusula PASS fala para o loop do WHILE seguir normalmente.
BREAK
A cláusula BREAK interrompe o loop.
CONTINUE
Usada no caso de querer pular uma iteração.
Variáveis Locais
Enxergada apenas dentro da função onde foi criada.
Variáveis Globais
Pode ser utilizada em todo o código.
Módulos
É uma maneira que o python tem de salvar definições e funções criadas em um arquivo e reutilizá-las em um script ou em uma instância interativa do interpretador. São arquivos python com extensão .py ou pacotes com diversas funções, devendo ser importadas para utilizá-las em seu código.
Métodos
São funções incorporadas a objetos, que permitem executar ações específicas no objeto e podem também ter argumentos.
Notação: objeto.método(arg1, arg2, ...)
Métodos para o objeto lista
· Append
· Count
· Extend
· Insert
· Pop
· Remove
· Reverse
· Sort
· Index
· Copy
· Clear
Métodos para o objeto arquivo
· Open
· Read
· Write
· Seek
· Readlines
· Close
Métodos do pacote Datetime
· datetime.datetime.now(): retorna o timestamp corrente
· datetime.time(7,43,28): cria o horário 07:43:28
· datetime.date.today(): retorna a data de hoje
· datetime.date(2020,5,30): cria a data 2020-05-30
Funções
Uma função é um dispositivo que agrupa um conjunto de instruções para que elas possam ser executadas mais de uma vez, permitindo especificar os parâmetros que servirão de entrada.
Notação:
Depois de pronta, basta chamar a função pelo nome (como se fosse uma variável) passando os parâmetros necessários. Def cria um objeto e atribui um nome a ele.
É possível também deixar em aberto a quantidade de parâmetros a serem passados para a função usando o * conforme abaixo.
Funções Prontas
· ABS(): módulo
· APPEND(): inclui valores em uma lista, lista.append(“maçã”)
· BIN(): converte em binário
· BOOL(): retorna um valor booleano, bool(1) true
· CAPITALIZE(): transforma o primeiro caractere em maiúsculo
· CLEAR(): limpa o dicionário, dicio.clear()
· COUNT(): conta quantos caracteres do parâmetro passado têm na string, s.count(‘a’)
· DIR(): passa a lista de todos os métodos e atributos de um objeto, dir(lista)
· ENDSWITH(): vê se a string termina com o caractere passado
· FIND(): retorna a posição do parâmetro passado na string, s.find(‘p’)
· FLOAT(): converte um número para float
· GET(): procura uma chave no dicionário podendo passar um retorno para o caso de não encontrar, curso.get(1234, “Não achou”)
· HELP(): explica melhor o parâmetro passado, help(lista.count)
· HEX(): converte em hexadecimal
· INDEX(): retorna a posição de um elemento na lista, lista.index(“maçã”)
· INPUT(): pede que o usuário digite algo
· INSERT(): insere um elemento na lista em uma posição, lista.insert(2,”maçã”)
· INT(): converte um número para inteiro (0.5 arredonda para 0)
· ISLOWER(): vê se o caractere é minúsculo
· ISSPACE(): vê se a string é espaço
· ITEMS(): retorna chaves e valores do dicionário
· KEYS(): extrai as chaves do dicionário
· LEN(): verificar o comprimento da lista ou quantidade de chaves em um dicionário
· LIST(): converte uma tupla em lista
· LOWER(): transforma todos os caracteres em minúsculo
· MAX(): retorna o maior valor de uma lista
· MIN(): retorna o menor valor de uma lista
· POW(): potência
· PRINT(): imprime na tela
· RANGE(): cria um range com a quantidade de elementos passados, range(3) 0,1,2. Tem formato RANGE(inicio, fim, step), sendo o fim não inclusivo.
· REMOVE(): exclui um elemento da lista, lista.remove(”maçã”)
· REVERSE(): inverte os elementos da lista
· ROUND(): arredonda
· SORT(): ordena os elementos da lista
· SPLIT(): quebra a string por linha de acordo com o separador que você passar. Se não passar nada, ele quebra por espaço em branco.
· SQRT(): calcula a raiz quadrada do número passado
· SUM(): soma o conteúdo de uma lista
· TUPLE(): converteuma lista em tupla
· TYPE(): diz o tipo do dado
· UPDATE(): atualiza um dicionário, acrescentando os elementos de outro dicionário
· UPPER(): transforma todos os caracteres em maiúsculo, s.upper()
· VALUES(): extrai os valores atribuídos às chaves do dicionário
Funções Orientadas a Expressões
São funções que permitem uma abordagem funcional à programação, facilitando a criação do código.
Expressão Lambda (Função In-line ou Anônima)
Permite criar funções ah-hoc sem a necessidade de usar a palavra reservada def. O corpo do lambda é uma única expressão e não um bloco de instruções, semelhante a uma instrução de retorno do corpo def. Lambda cria um objeto e o retorno como um resultado em tempo de execução.
Obs.: expressões lambda são úteis quando usadas em conjunto com as funções filter(), map() e reduce().
Notação: soma = lambda x,y: x+y
Depois basta passar o parâmetro para a variável soma(x,y).
Map
É uma função que recebe dois argumentos: uma função e uma sequência. Ela aplica a função a cada um dos itens da sequência, retornando uma lista de todos os resultados obtidos.
list(map(lambda w: [w.upper(), w.lower()], palavras))
Reduce
Importada do pacote functools. É uma função que recebe dois argumentos: uma função e uma sequência. Ela aplica a função passada aos elementos da sequência até que reste apenas um elemento.
Exemplo, o código abaixo seguiria o fluxo indicado pelo fluxograma.
lista = [47,11,42,13]
reduce(lambda x,y: x+y, lista)
Filter
É uma função que recebe dois argumentos: uma função e uma sequência. A função passada como parâmetro deve retornar um valor booleano (true ou false). A função será aplicada a todos os valores da sequência e eles só serão retornados se derem true.
Exemplo: 
def verificaPar(num):
 if num % 2 == 0:
 return True
 else:
 return False
list(filter(verificaPar,lista))
Isso seria equivalente a list(filter(lambda x: x%2==0, lista))
List comprehension
Aplica uma expressão arbitrária, ao invés de aplicar apenas uma função a uma sequência de elementos. Permite desenvolver listas usando uma notação diferente (uma linha de loop for dentro de []). Oferece vantagem em performance se comparada a um map.
lst = [(x*4) for x in sequência]
Também se pode incluir um condicional dentro do list comprehension, por exemplo:
lst = [x for x in range(11) if x % 2 == 0]
Zip
Agrega valores de duas sequências e retorna uma tupla. Pode ser usada quando o número de elementos for diferente em cada sequência e o objeto resultante terá o mesmo número de elementos da menor sequência.
list(zip([1,2,3],[4,5,6,7])) [(1,4), (2,5), (3,6)]
Enumerate
Retorna uma tupla com o índice de cada valor em uma sequência e seu respectivo valor.
list(enumerate([‘a’,’b’,’c’])) [(0, ’a’), (1, ’b’), (2, ’c’)]
Arquivos
No python podemos interagir com qualquer tipo de arquivo, exigindo, no máximo, a instalação de bibliotecas e módulos de acordo com o formato com o qual se deseja trabalhar.
Para abrir um arquivo usa-se arq = open(“diretorio/arquivo.txt”, “r”). O “r” seria para abrir o arquivo para leitura. Caso queira abrir para escrita, use “w”.
A partir daí é possível manipular essa variável onde o arquivo ficou salvo, usando, por exemplo, arq.read(carac) para lê-lo (podendo incluir um parâmetro dizendo a quantidade de caracteres que você deseja ler). Ao usar o método read() o cursor fica no final do arquivo, não tendo nada a mais para ler. Para voltar ao início do arquivo deve-se usar arq.seek(0).
O método tell() conta o número de caracteres, o arq.seek(linha,coluna) retorna um ponto específico do conteúdo do arquivo. 
Caso abra o arquivo no modo escrita, o método arq.write(“hello”) permitirá que você sobrescreva o conteúdo do arquivo. Se o seu objetivo for adicionar e não sobrescrever, use “a” (de append) em vez de “w”. O métodos readlines() lê o arquivo linha a linha.
Ao finalizar o tratamento do arquivo, lembre de fechar a conexão usando arq.close().
Arquivos TXT
Podemos ler um arquivo e salvá-lo em uma variável data = arq.read() e quebrar seu conteúdo em linhas diferentes de acordo com algum parâmetro como, por exemplo, por enters: 
rows = data.split(“\n”)
Também seria possível fazer a divisão do arquivo por coluna ao passar um separador de referência: 
lista = [] #criamos uma lista vazia
for row in rows: #para cada linha do arquivo
 split_row = row.split(“,”) #vamos fazer a quebra no separador vírgula
 lista.append(split_row) #e salvar nessa lista
print(lista)
Para ver com quantas colunas ficamos daria para fazer:
first_row = lista[0]
count = 0
for colunm in first_row:
 count = count + 1
print(count)
Arquivos CSV
Definidos como arquivos separados por vírgulas. Importando o pacote pandas, podemos usar o método:
arq = pd.read_csv(“diretório/arivo.csv”)
arq.head() nos traz as primeiras linhas do arquivo.
Importando o pacote csv, temos acesso a outros métodos úteis. Poderíamos escrever no arquivo da seguinte maneira:
with open (‘arquivos.numero.csv’,’w’) as arquivo:
 writer = csv.writer(arquivo)
 writer.writerow((‘primeira’, ‘segunda’, ‘terceira’))
 writer.writerow((55, 34, 69))
E, para lê-lo:
with open (‘arquivos.numero.csv’,’r’) as arquivo:
 leitor = csv.reader(arquivo)
 dados = list(leitor) # cria uma lista com os dados, no caso, seria uma matriz
 for x in leitor:
 print(‘Número de colunas: ‘, len(x))
 print(x) # valores das colunas
Arquivos JSON
Importando o módulo json, podemos converter um dicionário em json:
Json.dumps(dict)
Para ler um arquivo json:
with open (‘arquivos/dados.json’,’r’) as arquivo:
 texto = arquivo.read()
 data = json.loads(texto)
print(data[‘key1’]) # imprime o valor cuja chave é key1
Podemos puxar arquivos json da internet através do:
from urllib.resquest import urlopen
response = urlopen(‘http://vimeo.com/api/v2/vídeo/57733101.json’).read().decode(‘utf8’)
data = json.loads(response)[0]
print(data[‘title’]) # imprime o título do arquivo baixado, é um dos elementos do arquivo
print(data[‘url’)
print(data[‘duration’])
print(data[‘stats_number_of_plays’])
Também é possível unir os métodos concatenados em uma linha só. Vamos ver um exemplo de como copiar o conteúdo de um arquivo json para um txt:
import os
arquivo_fonte = ‘arquivo/dados.json’
arquivo_destino = ‘arquivo/json_data.txt’
open(arquivo_destino, ‘w’).write(open(arquivo_fonte,’r’).read())
Erros e Exceções
Exceções são erros com sintaxe correta. Um erro, normalmente, é associado a problemas com a linguagem. 
Notação para tratar exceções:
try:
 1 + ‘a’
except TypeError:
 print(‘operação não permitida’)
Mais um exemplo:
try:
 f = open(‘arquivos/teste.csv’,’r’)
except IOError: # erro de entrada/saída
 print(‘arquivo não encontrado’)
else:
 print(‘sucesso’)
finally: # permite executar códigos mesmo que haja exceções
 print(‘executar apesar de erros’)
Uma maneira de não permitir o código parar até não encontrar uma exceção é com a palavra reservada continue:
Exceções em Python: https://docs.python.org/3.6/library/exceptions.html
Programação Estruturada
Diz que todos os problemas podem ser resolvidos através de sequência, decisão e iteração (repetição).
Orientação a Objeto
É 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 objetos. A programação orientada a objeto tenta trazer objetos do mundo real para se tornar parte do código. Com o uso de classes é possível encapsular esses objetos e utilizá-los apenas se essas classes estiverem instanciadas e se elas permitirem o uso externo.
Classe
São abstrações computacionais que representam entidades do mundo real. É um template e cada instância de uma classe é um objeto. É a estrutura básica do paradigma de orientação a objetos, que representa o tipo de objeto, um modelo a partir do qual os objetos serão criados. Exemplo de classe: Livro. Cada livro será um objeto (com seu respectivo título, capa, páginas,história), mas todos dentro da classe “Livro”. 
A partir de classes, construímos instâncias (que são objetos). Por convenção, o nome de uma classe começa com letra maiúscula.
Objeto
É uma instância de uma classe e, por sua vez, possui atributos, que são características ou propriedades do objeto. Representam entidades, com suas qualidades (atributos) e ações (métodos).
Exemplo de objetos: list, tuple, dict, int, float.
Objetos definidos pelo usuário em Python são criados a partir de instâncias de classes criadas usando a palavra reservada class.
Atributos
São características ou propriedades que ajudam a identificar os objetos.
Você pode descobrir se um objeto tem determinado atributo usando hasattr(objeto, “nome”).
Você pode definir um atributo com setattr(objeto, “nome”, “João”).
Você pode obter o atributo através do getattr(objeto, ”nome”).
Você pode deletar um atributo usando delattr(objeto, ”nome”).
Métodos
São ações do objeto. Métodos são funções dentro de classes que têm como objetivo de realizar operações com os atributos do objeto. São usados no conceito de encapsulamento, do paradigma de programação orientada a objetos. Utiliza-se a palavra reservada def para criar métodos (igual feito com funções).
Você pode passar um valor default para os parâmetros caso nenhum parâmetro seja passado. Caso contrário, o parâmetro terá seu valor sobrescrito por aquele passado, exemplo:
def _init_ (self, raio = 5):
 self.raio = raio
Métodos Especiais
Classes em Python podem implementar determinadas operações com métodos especiais. Ao usá-los, sua classe poderá se comportar como um dicionário, uma função ou até um número.
__init__ : serve para inicializar um objeto criado a partir de uma classe.
Quando você executa a função del para remover um atributo de um objeto, internamente, o python utiliza o método especial __delattr__.
Mensagem
É a chamada de um objeto para invocar um de seus métodos.
Herança
É uma forma de gerar novas classes usando classes que foram previamente definidas. Mecanismo pelo qual uma classe, chamada subclasse (ou classe derivada, classe filha), pode estender uma outra classe, chamada superclasse (ou classe base, classe mãe), aproveitando seus atributos e métodos, ou seja, a subclasse herda atributos e métodos da superclasse.
No exemplo acima, há dois métodos Identif vinculados à classe cachorro. Nesse caso, se chamarmos rex.Identif() ele irá chamar o método da classe Cachorro, por ser a mais específica para ele.
Polimorfismo
Princípio a partir do qual as classes derivadas de uma única classe base são capazes de invocar os métodos que, embora apresentem a mesma definição, comportam-se de maneira diferente para cada uma das classes derivadas. Com ele, os mesmos atributos e métodos podem ser utilizados em objetos distintos, porém com implementações lógicas diferentes.
Encapsulamento
Técnica que faz com que detalhes internos dos funcionamentos dos métodos de uma classe permaneçam ocultos para os objetos.
Pacotes
São uma forma de estruturas os módulos python. Seu importe seria import pacote.modulo. Um pacote é um diretório de módulos python contendo um arquivo. O PyPi é o repositório de pacotes do Python.
· math: possui diversas funções matemáticas
· pandas: é o equivalente a um excel no python
· numpy: usado principalmente para realizar cálculos vetoriais
· sklearning: pacote de machine learning
· os: utilizado para manipular sistemas operacionais
· csv: para manipular arquivos csv
· json: para manipular arquivos json
· random: gera valores randômicos
· statistics: para operações com estatística
· sys: permite interagir com sistema operacional
· datetime: para trabalhar com datas
from urllib.resquest import urlopen: para acessar arquivos da internet
Para atualizar versão do pacote use pip install numpy -U
Numpy
Acrônimo de numerical python. É o pacote fundamental para computação em Python. Fornece suporte para arrays e matrizes, além de funções matemáticas para operações com esses objetos. Ele surgiu a partir de dois outros pacotes: numeric e numarray. Ele também tem integração com C, C++ e Fortran e permite passar dados de um algoritmo para outro.
Array
É um conjunto de valores, todos do mesmo tipo e indexados por uma tupla de valores não-negativos. Eles possuem tipo estático, são mais eficientes no uso de memória e rápida implementação de funções matemáticas.
Para criar um array usar:
import numpy as np
vetor1 = np.array([1,2,3,4,5,6,7,8,9,10])
vetor2 = np.arange(0., 4.5, .5) # start, stop, step
vetor3 = np.zeros(2) # cria um array de zeros com 2 elementos
vetor4 = np.eye(3) # cria uma matriz identidade 3x3
vetor5 = np.array( [1 , 2], dtype = np.float64 ) # força o tipo para float
vetor1[2:9:2] # start, stop, step - slicing
Para ver os métodos desse array, basta escrever vetor. e apertar tab.
Para imprimir um elemento do vetor, usa-se vetor[0]
Para alterar um elemento, basta fazer vetor[0] = 100
Um vetor é um array unidimensional.
Uma matriz é um array bidimensional.
matrix = ( [ [1,2,3] , [4,5,6] ] )
print(matrix.shape) # dá as dimensões da matriz
matrix1 = np.ones((2,3)) # cria uma matriz de 1s com as dimensões passadas
Um tensor é um array tridimensional.
Métodos
np.random.rand(10) # cria uma lista de 10 elementos randômicos
np.mean(vetor1) # calcula a média dos elementos do array
np.std(vetor1) # calcula o desvio padrão dos elementos do array
np.var(vetor1) # calcula a variância dos elementos do array
np.sum(vetor1) # calcula a soma dos elementos do array
np.prod(vetor1) # calcula o produto dos elementos do array
np.cumsum(vetor1) # calcula a soma acumulada dos elementos do array
np.array_equal(vetor1, vetor2) # vê se os dois arrays são iguais
np.min(vetor1) # menor valor do array
np.max(vetor1) # maior valor do array
np.around(vetor1) # arredonda os valores do array
np.concatenate(vetor1, vetor2, axis=0) # concatena os dois arrays
vetor2 = vetor1.flatten() # copia os valores de um array para outro
vetor2 = np.copy(vetor1) # copia os valores de um array para outro
Datasets
import os
filename = os.path.join (‘iris.csv’) # tem que estar no mesmo diretório do notebook
!more iris.csv # para visualizar as primeiras linhas do arquivo
arq = np.loadtxt(filename, delimiter=”,”, usecols=(0,1,2), skiprows=1) # para carregar o arquivo
Gráficos
Pandas
Biblioteca criada para manipular de forma rápida e expressiva, dados estruturados. Possui uma sofisticada funcionalidade de indexação que facilita o slide and dice, agregações e seleção de subsets de dados. Também possui funcionalidades de manipulação de dados de séries temporais de alta performance, ideal para manipulação de dados financeiros. É uma excelente opção para data munging/wrangling, que é basicamente o processo de converter e mapear dados de um estado bruto para outro formato que permita manipular os dados com ferramentas de mais alto nivel, como, por exemplo, aplicar algoritmos de machine learning.
Séries
É um array unidimensional que contém um array de dados e um array de labels, chamado índice.
Para usar: from pandas import Series
obj2.values
obj2.index
obj2[obj2 > 3] # notação de Slicing do pandas
obj2[‘a’]
obj3 = series(dict) # ao passar um dicionário e transformá-lo em série, as chaves viram índices.
Dataframes
Representam uma estrutura tabular semelhante a estrutura de uma planilha de excel, contendo uma coleção de colunas em que cada uma pode ser um diferente valor. Possuem index e linhas, sendo seus dados armazenados em um ou mais blocos bidimensionais, ao invés de listas, dicionários ou outra estrutura de array.
Para usar: from pandas import DataFrame
frame.columns
frame[‘Ano’]
frame[:2] 
frame[‘Valores’] = np.arange(5.) # preenche a coluna Valores com 0.0 a 4.0
frame.describe() # traz count, media, desvio padrão, mínimo, max, distribuição dos dados
frame.loc[‘Ano’] # localiza registros pelos valores
frame.iloc[2] # localiza registros pelos índices
frame.set_index(‘Ano’) # transforma a coluna ano no índice do dataframe
df = pd.read_csv(‘arquivo.csv’, names = [nome col1, nome col2..])#para abrir arquivos em csv separado por vírgula
df.apply(np.cumsum) #aplica a função aos dados do dataframe
Matplotlib
import matoplotlib.pyplot as plt
%matplotlib inline # cria os gráficos no próprio jupyter notebook
plt.show((plt.hist(np.random.rand(1000)))) # cria um histograma
plt.imshow(np.random.rand(30,30), cmap=plt.cm.hot) # cria um mapa de calor
plt.colorbar()
Gráfico de Linha
plt.plot([1,3,5],[2,5,7], label = ‘Valores)
plt.legend()
plt.xlabel(‘Variável 1’)
plt.ylabel(‘Variável 2’)
plt.title(‘Var 1 x Var 2’)
plt.show()
Gráfico de Barras
x = [1,3,5]
y = [4,2,7]
plt.bar(x,y, label = ‘barras’, color = ‘r’)
plt.legend()
plt.show()
Histograma
plt.hist(x, y, histtype = ‘bar’, rwidth = 0.8 ) # em vez de bar pode ser stepfilled
plt.show()
Scatterplot
plt.scatter(x, y, label = ‘pontos’, color = ‘r’, marker = ‘o’, s = 100)
plt.legend()
plt.show()
Stackplot
dias = [1,2,3,4,5]
dormir = [7,8,11,13,15]
comer = [3,5,2,4,3]
plt.stackplot(dias, dormir, comer, colors = [‘r’,’y’,’b’])
plt.show()
Pie Chart
slice = [5,7,9,13]
legendas = [‘rot 1’,’rot 2’,’rot 3’,’rot 4’]
cores = [‘r’,’y’,’b’,’k’]
plt.pie(x, slice, labels = legendas, colors = cores, startangle = 90, shadow = true, explode = (0, 0.1, 0, 0))
plt.show()
Pylab
SciPy
É uma coleção de pacotes que tratam problemas em domínios específicos em computação científica. Aliado com o Numpy, eles se complementam a ponto de possuírem as mesmas funcionalidades do Matlab. Ele possui pacotes para:
· álgebra linear
· matrizes esparas
· números randômicos
· transformações fast Fourier
· estimativa de densidade
· otimização
· processamento de sinais e imagens
Processamento de imagens
from scipy import misc
misc.imread(‘foto.png’) # lê a imagem como uma matriz de pixels
Scikit-Learn
Biblioteca utilizada para criar modelos de machine learning, mineração de dados e análises.
Aprendizagem Supervisionada
Termos 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.
A 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, como definição do sexo da pessoa a partir de uma foto.
A 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 o preço de determinado produto.
Aprendizagem Não-Supervisionada
Termo usado quando um programa pode automaticamente encontrar padrões e relações em um conjunto de dados, como para agrupamento de e-mails relacionados a um mesmo tema, sem que o programa possua qualquer conhecimento prévio sobre os dados.
Regressão Linear
# Diâmetros (cm)
X = [[7], [10], [15], [30], [45]]
# Preços (R$)
Y = [[8], [11], [16], [38.5], [52]]
# visualização gráfica
plt.figure()
plt.xlabel('Diâmetro(cm)')
plt.ylabel('Preço(R$)')
plt.title('Diâmetro x Preço')
plt.plot(Diametros, Precos, 'k.')
plt.axis([0, 60, 0, 60])
plt.grid(True)
plt.show()
from sklearn.linear_model import LinearRegression
# Criando o modelo
modelo = LinearRegression()
# Treinando o modelo
modelo.fit(X, Y)
# Prevendo o preço de uma pizza de 20 cm de diâmetro
print("Uma pizza de 20 cm de diâmetro deve custar: R$%.2f" % modelo.predict([[20]]))
# Coeficientes
print('Coeficiente: \n', modelo.coef_)
# MSE (mean square error)
print("MSE: %.2f" % np.mean((modelo.predict(X) - Y) ** 2))
# Score de variação: 1 representa predição perfeita
print('Score de variação: %.2f' % modelo.score(X, Y))
# Scatter Plot representando a regressão linear
plt.scatter(X, Y, color = 'black')
plt.plot(X, modelo.predict(X), color = 'blue', linewidth = 3)
plt.xlabel('X')
plt.ylabel('Y')
plt.xticks(())
plt.yticks(())
plt.show()
A função from sklearn.model_selection import train_test_split separa seus dados em treino e teste de forma randômica.
# Dividindo X e Y em dados de treino e de teste
X_treino, X_teste, Y_treino, Y_teste = train_test_split(X, df.PRICE, test_size = 0.33, random_state = 5)
Links Úteis
· https://matplotlib.org/basemap/: para ver mapas com matplotlib

Outros materiais