25
Computação Científica com NumPy e Scipy Silas Santiago L. Pereira

Computação científica com numpy e scipy

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Computação científica com numpy e scipy

Computação Científica com NumPy e Scipy

Silas Santiago L. Pereira

Page 2: Computação científica com numpy e scipy

Roteiro� O que é NumPy e SciPy ?

� Um pouco da história

� NumPy, SciPy como ambiente científico

� Comparação com o Matlab

� Funcionalidades do SciPy

Instalação dos módulos� Instalação dos módulos

� Explorando o NumPy

� Exemplos

� Explorando o SciPy

� Exemplos

� Visualização de Gráficos com PyLab

Page 3: Computação científica com numpy e scipy

Sobre mim

� Graduado em Ciência da Computação – UECE

� Mestrando em Ciência da Computação – MACC

� Pesquisador do LADESC

� Interesse em programação, redes, machine learning

Page 4: Computação científica com numpy e scipy

O que é NumPy e SciPy ?

� NumPy

� módulo da linguagem Python que permite trabalhar com vetores e matrizes multidimensionais.

� Scipy

� é um software open-source para matemática, ciência e engenhariaengenharia

� também o nome de uma conferência muito popular sobre programação científica com Python, que é patrocinada pela Enthought e outras.

Page 5: Computação científica com numpy e scipy

Historia do NumPy e SciPy

� Eric Jones

� Numpy

� Criação por Travis Oliphant� Unificar a comunidade scipy com um

pacote numérico comum

� Travis Oliphant

Unificar a comunidade scipy com um pacote numérico comum

� Baseado em Numeric e NumArray

� SciPy

� Criação em 2001 por Eric Jones e Travis Oliphant

� Atualmente mantido por uma próspera comunidade de usuários e desenvolvedores.

Page 6: Computação científica com numpy e scipy

NumPy, SciPy como ambiente científico� capaz de competir com outros softwares matemáticos, tais como

Matlab, Octave, R-Lab e Scilab

� iPython

� Shell melhorado para Python com diversos recursos para programação interativa, incluindo também interação fácil com PyLab.

Page 7: Computação científica com numpy e scipy

Comparação com o Matlab

� Python + NumPy + SciPy = Programming Power

� Definição de Função em Matlab com muitas restrições

� Programação com Matlab não orientada a objetos

� NumPy/SciPy gratuitos e ainda amplamente usado

� Há muitos pacotes para geração de gráficos em Python � Há muitos pacotes para geração de gráficos em Python tão 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

Page 8: Computação científica com numpy e scipy

Funcionalidades do SciPy

� Organizado em subpacotes, abrangendo vários domínios da computação científica

Page 9: Computação científica com numpy e scipy

Instalação dos módulos

� Scipy está disponível 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

Page 10: Computação científica com numpy e scipy

Explorando o NumPy

� Arrays

� Matrizes

10 11 12 13 14 15

0 1 2 3 4 5

50 51 52 53 54 55

40 41 42 43 44 45

30 31 32 33 34 35

20 21 22 23 24 25

Page 11: Computação científica com numpy e scipy

Explorando o NumPy

� Array

� ndarrays –Vetores homogêneos (arrays) n-dimensionais

� Semelhantes a listas do Python

� Cada elemento do mesmo tipo (int ou float)

� Geralmente muito mais eficientes que listas

Exemplo:� Exemplo:

Page 12: Computação científica com numpy e scipy

Explorando o NumPy

� Matrizes

� é um tipo específico de array bidimensional

� com Numpy, torna-se possível definir matrizes e efetuar várias operações sobre elas.

� Exemplo:

Page 13: Computação científica com numpy e scipy

Explorando o NumPy

� Operações com Arrays e Matrizes

� Criação de Vetores

numpy.zeros((M,N))

numpy.ones((M,N))

numpy.empty((M,N))

numpy. zeros_like (m)

Vetor MxN de zeros

Vetor MxN de ums

Vetor MxN vazio (qualquer valor)

Vetor de zeros com formato de mnumpy. 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 de zeros com formato de m

Vetor de ums com formato de m

Vetor de vazio com formato de m

Vetor com valores aleatórios

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

Page 14: Computação científica com numpy e scipy

Explorando o NumPy

� Operações com Arrays e Matrizes

� Métodos de um vetor a (numpy.ndarray)

a.sum()

a.min()

a.max()

a.mean()

a. std()

Somatório dos items

Valor mínimo

Valor máximo

Média aritmética

Desvio Padrãoa. std()

a.var()

a.median()

a.trace()

a.size()

a.shape()

a.transpose()

a.copy()

a.fill(valor)

Desvio Padrão

Variância

Mediana

Traço

N° de elementos

Formato (dimensões)

Matriz transposta

Retorna cópia

Preenche com valor

Page 15: Computação científica com numpy e scipy

Explorando o NumPy

� Operações com Arrays e Matrizes

� Operações 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)

Operações elemento à elemento

Produto matricial

Concatena vetores

A[0]

A[i][j] ou A[i,j]

x[2:5]

x[:5]

x[2:]

x[numpy.where(x>7)]

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

Page 16: Computação científica com numpy e scipy

Exemplo com NumPy

Page 17: Computação científica com numpy e scipy

Explorando o Scipy

� Algebra Linear (scipy.linalg)

� Estatísticas (scipy.stats)

� Clusterização (scipy.cluster)

Page 18: Computação científica com numpy e scipy

Álgebra Linear

� subpacote scipy.linalg

� Provê rotinas de álgebra linear

� Funções básicas

� inv, solve, det, norm, lstsq,pinv

� ExemploExemplo

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

y + 2z =2

Page 19: Computação científica com numpy e scipy

Estatísticas (scipy.stats)

� Vasto número de rotinas básicas de estatística.

� Distribuições contínuas e discretas

� Funções estatísticas

� Exemplo:

Page 20: Computação científica com numpy e scipy

Clusterização (scipy.cluster)

� Algoritmos de Agrupamento

� Atualmente, apenas o K-Means (K-Médias)

� Algoritmo de aprendizado não supervisionado

Page 21: Computação científica com numpy e scipy

Clusterização (scipy.cluster)

� Exemplo

11

22

33 Exemplos

44

55

66

N° de clusters

Obtêm matriz de classificação e de distâncias

Page 22: Computação científica com numpy e scipy

Exemplo: Clusterização

� Gráfico obtido

Page 23: Computação científica com numpy e scipy

Visualização de Gráficos com PyLab

� Geração de gráficos 2D de excelente qualidade

� Possibilita

� edição interativa,

� animações,

� diversos tipos de gráficos,

� Anotações com latex� Anotações com latex

� Salvar em deferentes formatos

� Sintaxe semelhante ao Matlab

Page 24: Computação científica com numpy e scipy

Visualização de Gráficos com PyLab

� Exemplo Importa os módulos

Plota o gráfico

Page 25: Computação científica com numpy e scipy

Perguntas?

FIMFIMFIMFIM