Download - Computação científica - Numpy e Scipy
![Page 1: Computação científica - Numpy e Scipy](https://reader033.vdocuments.pub/reader033/viewer/2022052401/55cf9bea550346d033a7d9a8/html5/thumbnails/1.jpg)
Computação Científica com NumPy e Scipy
Silas Santiago L. Pereira
![Page 2: Computação científica - Numpy e Scipy](https://reader033.vdocuments.pub/reader033/viewer/2022052401/55cf9bea550346d033a7d9a8/html5/thumbnails/2.jpg)
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 - Numpy e Scipy](https://reader033.vdocuments.pub/reader033/viewer/2022052401/55cf9bea550346d033a7d9a8/html5/thumbnails/3.jpg)
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 - Numpy e Scipy](https://reader033.vdocuments.pub/reader033/viewer/2022052401/55cf9bea550346d033a7d9a8/html5/thumbnails/4.jpg)
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 - Numpy e Scipy](https://reader033.vdocuments.pub/reader033/viewer/2022052401/55cf9bea550346d033a7d9a8/html5/thumbnails/5.jpg)
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 - Numpy e Scipy](https://reader033.vdocuments.pub/reader033/viewer/2022052401/55cf9bea550346d033a7d9a8/html5/thumbnails/6.jpg)
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 - Numpy e Scipy](https://reader033.vdocuments.pub/reader033/viewer/2022052401/55cf9bea550346d033a7d9a8/html5/thumbnails/7.jpg)
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 - Numpy e Scipy](https://reader033.vdocuments.pub/reader033/viewer/2022052401/55cf9bea550346d033a7d9a8/html5/thumbnails/8.jpg)
Funcionalidades do SciPy
� Organizado em subpacotes, abrangendo vários domínios da computação científica
![Page 9: Computação científica - Numpy e Scipy](https://reader033.vdocuments.pub/reader033/viewer/2022052401/55cf9bea550346d033a7d9a8/html5/thumbnails/9.jpg)
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 - Numpy e Scipy](https://reader033.vdocuments.pub/reader033/viewer/2022052401/55cf9bea550346d033a7d9a8/html5/thumbnails/10.jpg)
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 - Numpy e Scipy](https://reader033.vdocuments.pub/reader033/viewer/2022052401/55cf9bea550346d033a7d9a8/html5/thumbnails/11.jpg)
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 - Numpy e Scipy](https://reader033.vdocuments.pub/reader033/viewer/2022052401/55cf9bea550346d033a7d9a8/html5/thumbnails/12.jpg)
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 - Numpy e Scipy](https://reader033.vdocuments.pub/reader033/viewer/2022052401/55cf9bea550346d033a7d9a8/html5/thumbnails/13.jpg)
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 - Numpy e Scipy](https://reader033.vdocuments.pub/reader033/viewer/2022052401/55cf9bea550346d033a7d9a8/html5/thumbnails/14.jpg)
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 - Numpy e Scipy](https://reader033.vdocuments.pub/reader033/viewer/2022052401/55cf9bea550346d033a7d9a8/html5/thumbnails/15.jpg)
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 - Numpy e Scipy](https://reader033.vdocuments.pub/reader033/viewer/2022052401/55cf9bea550346d033a7d9a8/html5/thumbnails/16.jpg)
Exemplo com NumPy
![Page 17: Computação científica - Numpy e Scipy](https://reader033.vdocuments.pub/reader033/viewer/2022052401/55cf9bea550346d033a7d9a8/html5/thumbnails/17.jpg)
Explorando o Scipy
� Algebra Linear (scipy.linalg)
� Estatísticas (scipy.stats)
� Clusterização (scipy.cluster)
![Page 18: Computação científica - Numpy e Scipy](https://reader033.vdocuments.pub/reader033/viewer/2022052401/55cf9bea550346d033a7d9a8/html5/thumbnails/18.jpg)
Á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 - Numpy e Scipy](https://reader033.vdocuments.pub/reader033/viewer/2022052401/55cf9bea550346d033a7d9a8/html5/thumbnails/19.jpg)
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 - Numpy e Scipy](https://reader033.vdocuments.pub/reader033/viewer/2022052401/55cf9bea550346d033a7d9a8/html5/thumbnails/20.jpg)
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 - Numpy e Scipy](https://reader033.vdocuments.pub/reader033/viewer/2022052401/55cf9bea550346d033a7d9a8/html5/thumbnails/21.jpg)
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 - Numpy e Scipy](https://reader033.vdocuments.pub/reader033/viewer/2022052401/55cf9bea550346d033a7d9a8/html5/thumbnails/22.jpg)
Exemplo: Clusterização
� Gráfico obtido
![Page 23: Computação científica - Numpy e Scipy](https://reader033.vdocuments.pub/reader033/viewer/2022052401/55cf9bea550346d033a7d9a8/html5/thumbnails/23.jpg)
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 - Numpy e Scipy](https://reader033.vdocuments.pub/reader033/viewer/2022052401/55cf9bea550346d033a7d9a8/html5/thumbnails/24.jpg)
Visualização de Gráficos com PyLab
� Exemplo Importa os módulos
Plota o gráfico
![Page 25: Computação científica - Numpy e Scipy](https://reader033.vdocuments.pub/reader033/viewer/2022052401/55cf9bea550346d033a7d9a8/html5/thumbnails/25.jpg)
Perguntas?
FIMFIMFIMFIM