Anda di halaman 1dari 81

SciPy software open source voltado para

matemticos, engenheiros e cientistas em geral


http://www.scipy.org/
Ideal para computao cientfica
Matemtica avanada, processamento de sinais,
otimizao, estatstica, etc.
Extenso da linguagem Python
Utiliza tambm as extenses Numpy e MatplotLib
uma linguagem interpretada, interativa,
funcional, orientada a objetos, dinamicamente
tipada e com gerenciamento automtico de
memria
Similar, em certos aspectos, a Perl, Ruby, Scheme,
Smalltalk e Tcl
Numpy define vetores/matrizes numricas e
operaes sobre os mesmos
http://numpy.scipy.org/
Alta performance
Manipular arrays de Numpy muito mais rpido que
listas nativas de Python
Exemplo: Python puro x Numpy
Intel i5-2400 3.10 GHz, 4 GB DDR3
Leva 15 segundos!
instantneo!
Scipy e NumPy no fornecem funes nativas
para plotagem
So pacotes essencialmente para processamento
numrico
Para plotar, usar o pacote Matplotlib
Grficos em 2D
http://matplotlib.sourceforge.net/
Acesse
http://docs.scipy.org/doc/
Python for Scientific Computing Conference
http://conference.scipy.org/scipy2011/
Python uma linguagem de script
Adote que o IDE que voc preferir: vim, emacs, Wing, Eric,
Netbeans, Ninja, etc.
Scipy usado normalmente com a shell interativa avanada
IPython
Python
IPython
NumPy
SciPy Matplotlib
Normalmente o conjunto chamado pylab
Olhando Python um
pouco mais de perto!
Para obter o interpretador Python
acessar
http://www.python.org/download/
Verses
Python 2.7.2 foi liberada em 11 de junho
de 2011
Python 3.2.2* foi liberada em 04 de
setembro de 2011
Onde sua imaginao mandar!
Web e Internet
Database
GUIs
Cientfico e processamento numrico
Educao
Programao de rede
Construo e teste de software
Desenvolvimento de jogos
renderizao 3D
Roda em
Unix: HP-UX, Solaris ...
Linux (freqentemente pr-instalada)
Mac OSX (sempre pr-instalada)
Windows: 9x, ME, 2K, XP, Vista, Seven
Apple iPhone
Google Android
Extensa biblioteca padro
Um mdulo para o que voc
precisar
sys, r andom, r e, dat et i me,
cal endar , csv, os, webbr owser ,
st r i ng, ur l i b, Tki nt er ,
codecs, pi ckl e, t ypes, ar r ay,
mut ex, queue, zl i b, gzi p, md5,
t hr ead, socket , emai l ,
xml . dom, l ocal e, etc.
Python case sensitive
Linhas so delimitadas por enter
Tipagem forte e dinmica
No h declarao de variveis como em C, Java,
Pascal, etc.
Voc pode utilizar o interpretador em modo
interativo ou seu IDE/editor favoritos
Em Python, variveis so referncias a
objetos
no guardam os objetos em si
no tm tipo, mas os objetos aos quais elas se
referem tm tipo
So criadas dinamicamente
Uma varivel no pode ser utilizada em uma
expresso sem ter sido inicializada
no existe criao automtica de variveis
Variveis no so caixas com valores
Variveis so rtulos colados em objetos
So criadas pela atribuio =
Atribuio no gera uma cpia do objeto
Uma referncia (varivel) pode ser liberada
Usando del
No existindo mais referncias a um objeto, ele
removido da memria (garbage collector)
Normalmente para programas maiores voc
ir codificar arquivos (scripts) em um IDE
extenso py
O script pode ser executado diretamente da
linha de comando
python oi.py
Ou carregado para o interpretador interativo
>>> import oi.py
Mdulos so arquivos que contm qualquer
estrutura python (classes, funes, variveis,
etc.) e podem ser importados nos programas
Quando importado pela primeira vez o mdulo
compilado e um arquivo .pyc ou .pyo gerado
Um mdulo um objeto singleton
Apenas uma instncia carregada em memria
torna-se disponvel globalmente para o programa
que fez a importao
Funes importantes so disponibilizadas em
mdulos da biblioteca padro
Ex.: mdulo math tem funes como sin, cos, exp e
outras
Um mdulo pode conter no s funes, mas
tambm variveis ou classes
Ex.: math define a constante pi
Os mdulos so localizados pelo
interpretador pela lista de diretrios em
PYTHONPATH (sys.path), que inclui o diretrio
atual
Para usar os elementos de um mdulo,
comando import
import modulo
from modulo import nome
1
,...,nome
n
from modulo import *
A importao ocorre apenas uma vez!
Para carregar um mdulo novamente (que tenha sido
alterado) pode-se usar a funo reload
Exemplos
Se um programa pode ser executado isolado
ou importado dentro de outro, como distinguir
as duas situaes?
O mdulo principal de um programa tem a varivel
__name__ contendo __main__
Para executar um cdigo apenas se o mdulo for o
principal e no quando ele for importado
A estrutura dos blocos definida pela
indentao
No misturar tabulaes com espaos
Quando o caractere # aparece, o interpretador
ignora o restante do cdigo at o final da linha
Isso no vale dentro de strings
Para vrias linhas use asplas triplas (docstring)
Ser til para documentar funes, classes, mdulos, etc.
Tipos bsicos
int = normalmente 32 bits
long = limitado ao tamanho da memria
H promoo automtica de int para long
Diviso de inteiros em python < 3 resulta sempre int
Tipos bsicos
float = ponto flutuante de 32 bits
complex= para nmeros complexos
Construtores ou funes de converso
int (n)
float (n)
complex (n)
abs (n)
Bsicos
+, -, *, /, **
Inteiros
%, //
Bit a Bit
&, |, ^, ~, >>, <<
Mdulo math e outros
Representa o valor nulo
Equivalente a False em operaes booleanas
Aplicaes tpicas
Valor default em parmetros de funes
Valor de retorno de funes que ser descartado
Como void de C/C++
Constantes True e False
Ocorre converso automtica entre tipos
Converso explcita pode ser feita com bool(x)
Relacionais
>, <, >=, <=, ==, !=, is, is not
Sempre retornam um bool
Lgicos
and, or, not
str Sequncia de bytes, com a
acentuao dependente do encoding
Delimitadas por aspas, apstrofo ou trs
aspas ou trs apstrofos
Constantes str ou unicode so interpretadas
segundo a codificao declarada num
comentrio especial no incio do arquivo .py
Ns (brasileiros) frequentemente lidamos
com textos no ASCII
Use caracteres de formatao, como na printf
de C
%s, %d, %f so os mais comuns
Tuplas so sequncias imutveis
no possvel modificar as referncias contidas na
tupla
Tuplas constantes so representadas como
sequncias de itens entre parnteses
CUIDADO: em certos contextos os parnteses em
redor das tuplas podem ser omitidos
Listas so colees de itens heterogneos
que podem ser acessados sequencialmente ou
indexados
So mutveis
Constantes do tipo lista so delimitadas por
colchetes []
Facilmente voc pode criar uma lista
numrica com
range([inicio,] fim[, passo])
Retorna uma sequncia numrica conforme os
argumentos dados
Normalmente usada em laos for
Os tipos string, lista, tupla, buffer so
sequncias
Coleo ordenada e itervel de itens
Operaes
s[i] = acessa um item
s[-i] = acessa um item pelo final
s+z = concatena
s*n = produz n cpias de s concatenadas
e in s = elemento e est em s?
e not in s = elemento e no est em s?
Operaes de slicing
s[a:b] cpia de a (inclusive) at b (exclusive)
s[a:] cpia a partir de a (inclusive)
s[:b] cpia at b (exclusive)
s[:] cpia total de s
s[a:b:n] cpia de n em n itens
Atribuio
s[2:5] = [6,3,2,0]
Aplicvel somente em sequncias mutveis
Dicionrios so estruturas de dados que
implementam mapeamentos
colees de pares chave:valor que podem ser
recuperados pela chave
A chave pode ser qualquer imutvel
Entrada com input
Sada com print
if
if ( expr essao) :
bl oco
[ elif ( expr essao) :
bl oco]
[ else:
bl oco]
exemplo
for
for var i avel in sequenci a:
bl oco
[ else:
bl oco]
while
while ( expr essao) :
bl oco
[ else:
bl oco]
Exemplo
Modularizam o cdigo
Comando def inicia a definio de uma funo
Comando return marca o fim da execuo da
funo e define o resultado a ser devolvido
Pode ser None
Exemplo
Ei, no vamos complicar!
Classe file representam arquivos
Use a funo open (ou construtor file(), so
sinnimos)
abrir arquivo binrio para leitura
arq = file(imagem.png','rb')
abrir arquivo texto para escrita
arq = open(log.txt','w')
abrir arquivo para acrescentar (append)
arq = file(imagem.png','a')
Voltando a Scipy!
Teste interativo, aplicaes pequenas
Aplicaes srias
Considere
Valor de
Valor de
Um array Numpy uma coleo homegnea
de N-dimenses de itens do mesmo tipo
O tipo pode ser qualquer estrutura arbitrria
Criao e verificao de tipos
Dimenses
Bytes por elemento
Quantidade de elementos
Quantidade de bytes
Multiplicao por um escalar
Multiplicao por vetor e aplicao de funo
Criao
Transposta
Inversa
Diagonal
Solve
Mdulo stats
Clculo de estatsticas bsicas
numpy.mean,
numpy.std,
numpy.var
numpy.cov
stats.skew
stats.kurtosis
stats.moment
Etc.
Distribuies
Processamento de sinais e imagens
Filtragem(Filtering)
Convoluo 2D (com condies de limite)
Convoluo ND
Filtro B-spline
Filtro ND Order, filtro ND mediana
Filtros IIR/FIR e projeto de filtros
Sistemas LTI(Linear Time-Invariant)
Simulao de sistemas
Impulso e resposta
Expanso emfraes parciais
A famosa imagem clssica lena est
empacotada para testes
A imagem lena
um pequeno
recorte de uma
foto digitalizada
da Playboy
americana
(novembro,1973),
da modelo sueca
Lena Sjooblom
Aplicando filtro
Insero de rudo
Filtro para remoo de rudo
Deteco de limites
Sistemas LTI
2
Exemplo
Minimizao da Funo de Bessel (1784-1846)
Propagao de ondas
Difuso de calor
Processamento de sinais
etc.
]
u
(x) =
(-1)
m
m! I(m+u +1)
(
1
2
x)
2m+u

m=
Ex.: Minimizar
Funo de Bessel, primeira ordem, entre 4 e 7
Mais de 200 funes!
Exemplo: Bessel
Ex.: Plotando e

Anda mungkin juga menyukai