Computação Científica com NumPy e Scipy
Silas Santiago L. Pereira
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
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
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.
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.
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.
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
Funcionalidades do SciPy
� Organizado em subpacotes, abrangendo vários domínios da computação científica
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
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
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:
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:
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
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
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
Exemplo com NumPy
Explorando o Scipy
� Algebra Linear (scipy.linalg)
� Estatísticas (scipy.stats)
� Clusterização (scipy.cluster)
Á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
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:
Clusterização (scipy.cluster)
� Algoritmos de Agrupamento
� Atualmente, apenas o K-Means (K-Médias)
� Algoritmo de aprendizado não supervisionado
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
Exemplo: Clusterização
� Gráfico obtido
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
Visualização de Gráficos com PyLab
� Exemplo Importa os módulos
Plota o gráfico
Perguntas?
FIMFIMFIMFIM
Top Related