O documento discute as bibliotecas NumPy e SciPy para computação científica em Python. NumPy fornece vetores e matrizes multidimensionais, enquanto SciPy contém ferramentas para álgebra linear, estatística, clusterização e outras aplicações científicas. Exemplos demonstram como gerar e manipular arrays com NumPy e utilizar funções de clusterização no SciPy.
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. 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. 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. 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. 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. 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. Funcionalidades do SciPy
Organizado em subpacotes, abrangendo vários domínios
da computação científica
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
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. 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. 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. 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. 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
17. Explorando o Scipy
Algebra Linear (scipy.linalg)
Estatísticas (scipy.stats)
Clusterização (scipy.cluster)
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. 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:
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