Python 3.x Bibliotecas

Documentos relacionados
Computação 1 - Python 1/ 41

Computação I - Python

Computação 1 - Python Aula 2 - Teórica. João Carlos, Carla Delgado, Ana Luisa Duboc 1/ 39

Python 3.x Estrutura de Repetição for Estrutura de Decisão if then else

Python 3.x Estrutura de Repetição while

Luiz Eduardo Borges. Novatec

1/ 26. Computação 1 - Python Aula 1 - Prática: Primeiros Passos - Função

Computação I - Python Aula 1 - Prática: Primeiros Passos- Função

Programação de Computadores

1/ 23. Computação 1 - Python Aula 1 - Prática: Primeiros Passos - Função

1 Expressões, valores e tipos 1. 2 Variáveis e atribuições 5. cálculo de expressões segue a estrutura de parênteses e as prioridades dos operadores

Tópicos Especiais: Inteligência Artificial. Deep Learning

Introdução ao Python. Programa Computacional

Primeira Aula de Python

Linguagem Python. Inteligência Artificial. Características de Python. Importando módulos. Módulos. Usando Python no modo interativo

Computação Científica com Python

Programação Python. Nesta aula... 1 Programação. 2 Python. Operadores e Operandos Variáveis, Expressões, Instruções Funções Ciclos Comentários

Organização de programas em Python. Vanessa Braganholo

Curso online de Fundamentos em Android. Plano de Estudo

Aula 02. Prof. Diemesleno Souza Carvalho

Departamento de Ciência da Computação Python 3.x Variáveis e Expressões. Introdução à Ciência da Computação. Prof. Edison Ishikawa

Curso básico de Python para estudantes de Física

Usando Texto Formatado no IPython Notebook

Prof. Natalia Castro Fernandes Mestrado em Telecomunicações UFF 2º semestre/2012

Integração Arduino - Python Leitura de sensor de umidade e temperatura

Analises de Sinais Introdução ao Python. Prof. George Sand Franca Profa. Susanne Maciel

Tutorial Ambiente, instalação e começando um novo projeto Django

Passo-a-passo para desenvolver um Programa usando a Linguagem Python

TCC 00308: Programação de Computadores I Organização de programas em Python

Programação I Aula 2 Apresentação da linguagem Python

3ª Edição Nilo Ney Coutinho Menezes

Android OLÁ MUNDO MÓVEL. Prof. Dr. Joaquim assunção.

Aula de hoje. Python para disciplinas básicas. Computação científica. Introdução. Álgebra Linear. Álgebra linear

Introdução à Programação / Programação I

Minicurso: Inteligência Artificial Aplicada a Sistemas Elétricos. Capítulo: Inteligência Artificial na Arquitetura Intel.

Algoritmos e estrutura de dados

Computação 1 - Python Aula 4 - Teórica Variáveis e Atribuição, Strings. João Carlos, Carla Delgado, Ana Luisa Duboc 1/ 30

COMPUTAÇÃO PARALELA E DISTRIBUÍDA

Aprendizado de Máquina (Machine Learning)

Computação I - Python Aula 4 - Teórica: Variáveis e Atribuição, Strings

LOM3260 Computação científica em Python Informações sobre o curso

Python: Módulos. Claudio Esperança

Python: Exceções, Iteradores e Geradores. Claudio Esperança

Aula 10 Introdução ao NumPy

Computação I - Python Aula 1 - Teórica: Manipulação de Strings, Tuplas e Listas

Sumário. Introdução 1

Minicurso de Linguagem de Programação Python.

IDES E PROGRAMAÇÃO. Prof. Dr. Cláudio Fabiano Motta Toledo PAE: Maurício A Dias

Seguindo Instruções. Linguagens de Programação Algoritmos. Introdução à Ciência da Computação. Prof. Edison Ishikawa

PRIMEIROS PASSOS COM PYTHON. Prof. Msc. Luis Filipe Alves Pereira 2015

Computação 1 - Python Aula 4 - Teórica: Variáveis e Atribuição, Strings 1/ 26

CEFET/RJ. Aprendizado de Máquina - Trabalho 01

11 - Imagens e Gráficos simples

Algoritmos e Programação

Comandos de Entrada e Saída. Prof. Alberto Costa Neto Programação em Python

MC-102 Aula 01. Instituto de Computação Unicamp

DISTRIBUINDO SUA APLICAÇÃO

Professor: Laboratório de Programação com Games. Anselmo Montenegro Conteúdo: - Introdução. Instituto de Computação - UFF

AULA 2 VISÃO BÁSICA DE CLASSES EM PHP

Osvaldo Santana Thiago Galesi

AULA 2. Números e operações. Erros de arredondamento e de truncatura. Gráficos simples. Cópia de objetos. Estruturas de controlo.

Transcrição:

Python 3.x Bibliotecas Introdução à Ciência da Computação Prof. Edison Ishikawa

Sumário Módulo Namespace Escopo de nomes Operado ponto Pacotes Biblioteca Padrão Bibliotecas de terceiros

Módulos São Arquivos-fonte que podem ser importados por um programa Exemplo de importação absoluta >>>import math >>>math.sqrt(3**2 + 4**2) 5 Exemplo de importação relativa >>>from math import sqrt >>>sqrt(3**2 + 4**2) 5 É melhor usar importação absoluta. Importação relativa pode causar problemas, como ofuscação de variáveis etc. Exemplo de importação relativa de todo o módulo >>>from math import * >>>sqrt(3**2 + 4**2) 5 Note o caractere asterisco

Namespace É uma coleção de identificadores que pertencem a um módulo, função ou classe Namespaces agregam coisas relacionadas, por exemplo todas as funções matemáticas Exemplo >>> from math import * >>> help(math) Traceback (most recent call last): File "<pyshell#4>", line 1, in <module> help(math) NameError: name 'math' is not defined >>> >>> import math >>> help(math) Help on built-in module math: Como foi feita importação relativa o namespace math não existe. Logo dá erro quando o chamo namespace math agrega todas as funções matemáticas NAME math DESCRIPTION This module is always available. It provides access to the mathematical functions defined by the C standard. FUNCTIONS acos(...) acos(x) Return the arc cosine (measured in radians) of x. acosh(...) acosh(x) Return the inverse hyperbolic cosine of x.

Escopo de nomes Escopo de um identificador é a região do código do programa em que o identificador pode ser acessado ou usado Existem 3 escopos importantes em Python Escopo Local Se refere a identificadores declarados dentro de uma função Cada função tem seu próprio namespace Escopo Global Se refere a todos os identificadores dentro do módulo corrente ou do arquivo Escopo Embutido (built-in scope) Se refere a todos os identificadores construídos dentro do Python Aqueles que podem ser usados sem a necessidade de importar módulos e estão (quase) sempre disponíveis Exemplo: range e min

Escopo de nomes O mesmo nome pode ocorrer em mais de um dos escopo de Python Global Local e Built-in Qual é o que pode ser acessado ou usado? Regras de precedência O escopo mais interno, ou local, sempre tem precedência sobre o escopo global O escopo global sempre tem preferência sobre o escopo built-in

O operador. ponto Atributos e funções são acessados usando o operador ponto (. ) Também podemos importar um módulo dando um nome diferente pra ele Exemplo >>>import math as m >>>m.pi 3.141592653589793 >>>m.cos(m.pi/3) 0.5000000000000001

Pacotes (Packages) Pacotes regulares são pastas que são identificadas pelo interpretador pela presença de um arquivo com o nome init.py Pacotes funcionam como coleções para organizar módulos de forma hierárquica

Criando módulos Basta salvar o script com a extensão.py Suponha o script icc.py Exemplo: icc.py def mensagem( ): print( Programar só se aprende programando! ) return 0 Para usá-lo basta importar no seu programa Exemplo import icc icc.mensagem( )

Biblioteca Padrão Biblioteca de módulos e pacotes que é distribuída com o interpretador Python Matemática: math, cmath, decimal, random Sistema: os, glob, subprocess Threads: threading Persistência: pickle, marshall XML: xml.dom, xml.sac, xml.treee Configuração: configparser, optparse Tempo: time, datetime Outros: sys, logging, traceback, types, timeit...

Números aleatórios Frequentemente usamos números aleatórios nos nossos programas: Para desenvolver jogos em que o computador precise jogar um dado ou lançar uma moeda Para embaralhar uma pilha de cartas aleatoriamente Para simular o regime de chuvas de uma determinada região com um modelo computacional para estimar o impacto ambiental em se construir uma represa hidrelétrica Exemplo import random rng = random.random( ) # cria objeto que gera números pseudo-aleatórios jogar_dado = rng.randrange(1, 7) # retorna int entre 1 e 6 atraso_em_segundos = rng.random( )*5.0 cartas = list(range(52)) # gera um baralho com 52 cartas rng.shuffle(cartas) # embaralha as cartas

Módulo de tempo Para obter o tempo Para saber o desempenho do seu programa Basta obter o tempo no início e no final do programa Exemplo >>>import time >>>time.clock( ) # tempo da CPU do processo como float 3.924262932861295e-06 >>>time.localtime( ) time.struct_time(tm_year=2017, tm_mon=10, tm_mday=9, tm_hour=10, tm_min=21, tm_sec=11, tm_wday=0, tm_yday=282, tm_isdst=0) >>>help(time) Help on built-in module time: NAME time - This module provides various functions to manipulate time values. DESCRIPTION There are t..

Módulo math Contém funções matemáticas e algumas constantes Exemplo >>> import math >>> math.pi 3.141592653589793 >>> math.e 2.718281828459045 >>> math.sqrt(2.0) 1.4142135623730951 >>> math.radians(90) 1.5707963267948966 >>> math.sin(math.radians(60)) 0.8660254037844386

Biblioteca de terceiros Existem muitas bibliotecas disponíveis escritas por terceiros para Python Para instalar estas bibliotecas use o pip Exemplo: no prompt do S.O. usuario@maquina01:~$ pip install nome_do_pacote Downloading/unpacking nome_do_pacote Downloading......... usuario@maquina01:~$

Numpy Os tipos padrão de Python não são muito adequados para operações matemáticas Por exemplo, suponha a lista a = [2, 3, 5] multiplicada por um inteiro Exemplo >>> a = [2, 3, 5] >>> 2 * a [2, 3, 5, 2, 3, 5] O mesmo vale para a multiplicação por float Exemplo >>> a = [2, 3, 5] >>> 2.1 * a Traceback (most recent call last): File "<pyshell#25>", line 1, in <module> 2.1 * a TypeError: can't multiply sequence by non-int of type 'float'

Numpy Uma forma de resolver este problema em Python é: Exemplo: a = [ 2, 3, 5] b = [] for x in a: b.append(2.1 * x) Quebra-galho Jeitinho Forçação de barra Isto acontece por que as listas de Python não foram projetadas para serem um objeto matemático Lista em Python são apenas uma coleção de itens Para termos um tipo de lista que se comporte como um vetor ou uma matriz matemática, usamos a biblioteca Numpy

Numpy Provê: Um objeto do tipo vetor n-dimensional de itens homogêneos Operações matemáticas rápidas utilizando vetores/matrizes Ferramentas de Álgebra Linear Transformada de Fourier Geração de números aleatórios Operações em polinômios Operações com números complexos Etc

Numpy Como é uma biblioteca de terceiros é preciso instalá-lo antes de usar Exemplo no linux user@maquina01:/home/user/$ sudo pip install numpy No Windows, siga um dos vários tutoriais disponíveis na Web https://solarianprogrammer.com/2017/02/25/install-numpyscipy-matplotlib-python-3-windows/

Numpy Multiplicação Exemplo: >>> import numpy as np >>> a = np.array([2, 3, 5]) >>> 2.1 * a array ([4.2, 6.3, 10.5]) >>> a * a array ([4, 6, 10]) >>> a ** 2 array ([4, 6, 10]) >>> np.dot(a, a) 38

matplotlib É uma biblioteca para desenhar gráficos Python 2D que produz figuras de qualidade para publicação em uma grande variedade de formatos Você pode gerar gráficos, histogramas, diagramas de espectro, gráficos de barras, gráficos de erros, diagramas de dispersão, etc., com apenas algumas linhas de código Como toda biblioteca de terceiros precisa ser instalada antes de usar Exemplo de instalação no Linux user@maquina01:/home/user/$ sudo pip install matplotlib

matplotlib Exemplo: # An extra set of sample plots for the thumbnail image. import matplotlib.pyplot as plt import numpy as np np.random.seed(19680801) data = np.random.randn(2, 100) fig, axs = plt.subplots(2, 2, figsize=(5, 5)) axs[0, 0].hist(data[0]) axs[1, 0].scatter(data[0], data[1]) axs[0, 1].plot(data[0], data[1]) axs[1, 1].hist2d(data[0], data[1]) plt.show()

matplotlib

matplotlib

matplotlib

matplotlib Veja mais exemplos e tutoriais em: http://matplolib.org

SciPy Numpy Matplotlib Biblioteca Scipy: Estatística Processamento de sinais/imagens Estruturas de dados espaciais Biblioteca SymPy (computação simbólica) Exemplo: >>> integrate(cos(x), x) sin(x) >>> diff(cos(x), x) -sin(x)

SciPy https://github.com/splmc/reana-evaluator

Scikit-learn Aprendizado de máquina Classificação Regressão Agrupamento Útil em aplicações de inteligência artificial Baseada em Numpy, SciPy e Matplotlib

Outras bibliotecas Processamento de páginas web BeautifulSoup Jogos Pygame, Panda 3D Banco de dados - DBI Pymysql, sqlite3, postgresql, pymongo Aplicações Web Django Interface Gráfica PyQt Computação Gráfica Pillow, Vpython, OpenGL Plataformas portáteis (App para Android e IoS) Kivy

Outras bibliotecas Controle de câmera GoPro: https://github.com/deniscarriere/gopro Exemplo: >>> from gopro import GoPro >>> camera = GoPro.GoPro() >>> camera.photo() >>> camera.video() >>> camera.timelapse()

Framework Django É um framework para aplicações Web de alto nível Escrito em Python, incentiva o desenvolvimento rápido com um design limpo e pragmático Construído por desenvolvedores experientes, ele cuida de muitos dos problemas do desenvolvimento da Web, para que você possa se concentrar em escrever seu aplicativo sem precisar reinventar a roda É gratuito e de código aberto.

Sites feitos com Django/Python We all know YouTube as the place to upload cat videos and fails. As one of the most popular websites in existence, it provides us with endless hours of video entertainment. The Python programming language powers it and the features we love

Sites feitos com Django/Python Python also provides the power behind the most popular search engine in the world Google. The programming language can handle the traffic and computing needs of the search engine and its connected apps.

Sites feitos com Django/Python The National Aeronautics and Space Administration s official website is the place to find news, pictures, and videos about their ongoing space exploration. This Django website can easily handle huge amounts of views and traffic

Bibliografia How to Think Like a Computer Scientist: Learning with Python 3 Documentation - Release 3rd Edition Peter Wentworth, Jeffrey Elkner,Allen B. Downey and Chris Meyers Apr 26, 2017