Computação científica com numpy e scipy

5.303 visualizações

Publicada em

0 comentários
1 gostou
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
5.303
No SlideShare
0
A partir de incorporações
0
Número de incorporações
523
Ações
Compartilhamentos
0
Downloads
164
Comentários
0
Gostaram
1
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Computação científica com numpy e scipy

  1. 1. Computação Científica com NumPy e Scipy Silas Santiago L. Pereira
  2. 2. 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 Explorando o NumPy Exemplos Explorando o SciPy Exemplos Visualização de Gráficos com PyLab
  3. 3. 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
  4. 4. 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 engenharia também o nome de uma conferência muito popular sobre programação científica com Python, que é patrocinada pela Enthought e outras.
  5. 5. 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 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.
  6. 6. 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.
  7. 7. 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 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
  8. 8. Funcionalidades do SciPy Organizado em subpacotes, abrangendo vários domínios da computação científica
  9. 9. 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
  10. 10. 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
  11. 11. 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:
  12. 12. 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:
  13. 13. Explorando o NumPy Operações com Arrays e Matrizes Criação de Vetores numpy.zeros((M,N)) Vetor MxN de zeros numpy.ones((M,N)) Vetor MxN de ums numpy.empty((M,N)) Vetor MxN vazio (qualquer valor) numpy.zeros_like(m) Vetor de zeros com formato de m numpy.ones_like(m) Vetor de ums com formato de m numpy.empty_like(m) Vetor de vazio com formato de m numpy.random.random((M,N)) Vetor com valores aleatórios numpy.identity(N) Matriz Identidade, N x N numpy.array([(1,2,3),(4,5,6)]) Especifica os valores da matriz numpy.matrix([[1,2,3],[4,5,6]]) Especifica os valores da matriz numpy.arange(0.,1.,.3) Vetor com Inicio I, fim F, passo P numpy.linspace(0.1, 1, 10) Vetor com N valores de I à F
  14. 14. Explorando o NumPy Operações com Arrays e Matrizes Métodos de um vetor a (numpy.ndarray) a.sum() Somatório dos items a.min() Valor mínimo a.max() Valor máximo a.mean() Média aritmética a.std() Desvio Padrão a.var() Variância a.median() Mediana a.trace() Traço a.size() N° de elementos a.shape() Formato (dimensões) a.transpose() Matriz transposta a.copy() Retorna cópia a.fill(valor) Preenche com valor
  15. 15. Explorando o NumPy Operações com Arrays e Matrizes Operações entre vetores A-B, A+B, A*B, A/B,A**2 Operações elemento à elemento numpy.dot(A,B) ou mat(A)*mat(B) Produto matricial numpy.concatenate((A,B), axis=0) Concatena vetores A[0] 1° elemento A[i][j] ou A[i,j] (linha i, coluna j) x[2:5] Subvetor [x[2],x[3],x[4]] x[:5] Subvetor [x[0],...,x[4]] x[2:] Subvetor [x[2],...x[N]] x[numpy.where(x>7)] Elementos em x maiores que 7
  16. 16. Exemplo com NumPy
  17. 17. Explorando o Scipy Algebra Linear (scipy.linalg) Estatísticas (scipy.stats) Clusterização (scipy.cluster)
  18. 18. Álgebra Linear subpacote scipy.linalg Provê rotinas de álgebra linear Funções básicas inv, solve, det, norm, lstsq,pinv Exemplo x + y + z =0 x -2y + 2z =1 y + 2z =2
  19. 19. 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:
  20. 20. Clusterização (scipy.cluster) Algoritmos de Agrupamento Atualmente, apenas o K-Means (K-Médias) Algoritmo de aprendizado não supervisionado
  21. 21. Clusterização (scipy.cluster) Exemplo123 Exemplos N° de clusters45 Obtêm matriz de classificação e de distâncias6
  22. 22. Exemplo: Clusterização Gráfico obtido
  23. 23. 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 Salvar em deferentes formatos Sintaxe semelhante ao Matlab
  24. 24. Visualização de Gráficos com PyLab Exemplo Importa os módulos Plota o gráfico
  25. 25. Perguntas? FIM

×