Sei sulla pagina 1di 25

Computao Cientfica com NumPy e Scipy

Silas Santiago L. Pereira

Roteiro
O que NumPy e SciPy ? Um pouco da histria NumPy, SciPy como ambiente cientfico Comparao com o Matlab Funcionalidades do SciPy Instalao dos mdulos Explorando o NumPy Exemplos Explorando o SciPy Exemplos Visualizao de Grficos com PyLab

Sobre mim
Graduado em Cincia da Computao UECE Mestrando em Cincia da Computao MACC Pesquisador do LADESC Interesse em programao, redes, machine learning

O que NumPy e SciPy ?


NumPy
mdulo da linguagem Python que permite trabalhar com vetores e matrizes multidimensionais.

Scipy
um software open-source para matemtica, cincia e engenharia tambm o nome de uma conferncia muito popular sobre programao cientfica com Python, que patrocinada pela Enthought e outras.

Historia do NumPy e SciPy


Eric Jones
Numpy Criao por Travis Oliphant
Unificar a comunidade scipy com um pacote numrico comum

Travis Oliphant

Baseado em Numeric e NumArray SciPy Criao em 2001 por Eric Jones e Travis Oliphant Atualmente mantido por uma prspera comunidade de usurios e desenvolvedores.

NumPy, SciPy como ambiente cientfico


capaz de competir com outros softwares matemticos, tais como Matlab, Octave, R-Lab e Scilab iPython
Shell melhorado para Python com diversos recursos para programao interativa, incluindo tambm interao fcil com PyLab.

Comparao com o Matlab


Python + NumPy + SciPy = Programming Power Definio de Funo em Matlab com muitas restries Programao com Matlab no orientada a objetos NumPy/SciPy gratuitos e ainda amplamente usado H muitos pacotes para gerao de grficos em Python to bons quanto Matlab
Matplotlib (http://matplotlib.sourceforge.net/)
Python 2D Plotting library Provides a MATLAB-like plotting framework - matplotlib.pyplot

PyLab (http://www.scipy.org/PyLab)
Combines pyplot with numpy i nto a simgle namespace Convenient for interactive work

Funcionalidades do SciPy
Organizado em subpacotes, abrangendo vrios domnios da computao cientfica

Instalao dos mdulos


Scipy est disponvel para diferentes plataformas
http://new.scipy.org/download.html ou apt-get install python-numpy apt-get install python-scipy
http://numpy.scipy.org/ http://www.scipy.org

Explorando o NumPy
Arrays Matrizes
0 1 2 3 4 5

10 11 12 13 14 15 20 21 22 23 24 25 30 31 32 33 34 35 40 41 42 43 44 45 50 51 52 53 54 55

Explorando o NumPy
Array
ndarrays Vetores homogneos (arrays) n-dimensionais Semelhantes a listas do Python Cada elemento do mesmo tipo (int ou float) Geralmente muito mais eficientes que listas

Exemplo:

Explorando o NumPy
Matrizes
um tipo especfico de array bidimensional com Numpy, torna-se possvel definir matrizes e efetuar vrias operaes sobre elas.

Exemplo:

Explorando o NumPy
Operaes com Arrays e Matrizes
Criao de Vetores
numpy.zeros((M,N)) numpy.ones((M,N)) numpy.empty((M,N)) numpy.zeros_like(m) numpy.ones_like(m) numpy.empty_like(m) numpy.random.random((M,N)) numpy.identity(N) numpy.array([(1,2,3),(4,5,6)]) numpy.matrix([[1,2,3],[4,5,6]]) numpy.arange(0.,1.,.3) numpy.linspace(0.1, 1, 10) Vetor MxN de zeros Vetor MxN de ums Vetor MxN vazio (qualquer valor) Vetor de zeros com formato de m Vetor de ums com formato de m Vetor de vazio com formato de m Vetor com valores aleatrios Matriz Identidade, N x N Especifica os valores da matriz Especifica os valores da matriz Vetor com Inicio I, fim F, passo P Vetor com N valores de I F

Explorando o NumPy
Operaes com Arrays e Matrizes
Mtodos de um vetor a (numpy.ndarray)
a.sum() a.min() a.max() a.mean() a.std() a.var() a.median() a.trace() a.size() a.shape() a.transpose() a.copy() a.fill(valor) Somatrio dos items Valor mnimo Valor mximo Mdia aritmtica Desvio Padro Varincia Mediana Trao N de elementos Formato (dimenses) Matriz transposta Retorna cpia Preenche com valor

Explorando o NumPy
Operaes com Arrays e Matrizes
Operaes entre vetores
A-B, A+B, A*B, A/B,A**2 numpy.dot(A,B) ou mat(A)*mat(B) numpy.concatenate((A,B), axis=0) A[0] A[i][j] ou x[2:5] x[:5] x[2:] x[numpy.where(x>7)] A[i,j] Operaes elemento elemento Produto matricial Concatena vetores 1 elemento (linha i, coluna j) Subvetor [x[2],x[3],x[4]] Subvetor [x[0],...,x[4]] Subvetor [x[2],...x[N]] Elementos em x maiores que 7

Exemplo com NumPy

Explorando o Scipy
Algebra Linear (scipy.linalg) Estatsticas (scipy.stats) Clusterizao (scipy.cluster)

lgebra Linear
subpacote scipy.linalg Prov rotinas de lgebra linear Funes bsicas
inv, solve, det, norm, lstsq,pinv

Exemplo
x + y + z =0 x -2y + 2z =1 y + 2z =2

Estatsticas (scipy.stats)
Vasto nmero de rotinas bsicas de estatstica.
Distribuies contnuas e discretas Funes estatsticas

Exemplo:

Clusterizao (scipy.cluster)
Algoritmos de Agrupamento
Atualmente, apenas o K-Means (K-Mdias)
Algoritmo de aprendizado no supervisionado

Clusterizao (scipy.cluster)
Exemplo
1 2 3 4 5 6
Exemplos N de clusters

Obtm matriz de classificao e de distncias

Exemplo: Clusterizao
Grfico obtido

Visualizao de Grficos com PyLab


Gerao de grficos 2D de excelente qualidade
Possibilita
edio interativa, animaes, diversos tipos de grficos, Anotaes com latex Salvar em deferentes formatos Sintaxe semelhante ao Matlab

Visualizao de Grficos com PyLab


Exemplo
Importa os mdulos

Plota o grfico

Perguntas?

FIM

Potrebbero piacerti anche