O pacote scipy contém várias ferramentas dedicadas a problemas comuns em computação científica. Seus diferentes sub-módulos correspondem a diferentes aplicações, tais como interpolação, integração, otimização, processamento de imagens, estatísticas, funções especiais, etc
O SciPy pode ser comparado a outras bibliotecas de computação científica padrão, como a GSL (GNU Scientific Library para C e C + +), ou caixas de ferramentas do Matlab. O SciPy é o pacote principal de rotinas científicas em Python, que se destina a operar de forma eficiente em matrizes numpy, de modo que numpy e scipy trabalhem lado a lado.
Antes de implementar uma rotina, vale a pena verificar se o processamento de dados desejado não está implementado em SciPy. Como os programadores não-profissionais, os cientistas tendem a re-inventar a roda, o que leva a códigos com bugs, não ideais, e difíceis de compartilhar e insustentáveis. Por outro lado, as rotinas de scipy são otimizados e testadas, e devem, portanto, ser usadas sempre que possível.
Os módulos do SciPy abordados são:
- File input/output: scipy.io
- Special functions: scipy.special
- Linear algebra operations: scipy.linalg
- Fast Fourier transforms: scipy.fftpack
- Optimization and fit: scipy.optimize
- Statistics and random numbers: scipy.stats
- Interpolation: scipy.interpolate
- Numerical integration: scipy.integrate
- Signal processing: scipy.signal
- Image processing: scipy.ndimage
ATENÇÃO: Esta aula está longe de ser uma introdução à computação numérica. Como enumerar todos os diferentes submódulos e funções em scipy seria muito chato, aqui se concentram alguns exemplos para dar uma ideia geral de como usar scipy para computação científica.
O SciPy é composto de submódulos para tarefas específicas como:
scipy.cluster | Quantização de vetores (Kmean) |
scipy.constants | Constantes matemáticas e físicas |
scipy.fftpack | Tranformada de Fourier |
scipy.integrate | Rotinas de Integração |
scipy.interpolate | Interpolação |
scipy.io | Entrada e saída de dados |
scipy.linalg | Rotinas de algebra linear |
scipy.ndimage | pacote para imagens n-dimensionais |
scipy.odr | Regrassão ortogonal de distância |
scipy.optimize | Otimização |
scipy.signal | Processamento de sinal |
scipy.sparse | Matrizes esparsas |
scipy.spatial | Estruturas de dados espacial e algoritmos |
scipy.special | Qualquer função matemática especial |
scipy.stats | Estatística |
Todos dependem do numpy, mas são em grande parte independentes uns dos outros. A forma padrão de importar Numpy e estes módulos scipy é:
[pastacode lang=”python” message=”” highlight=”” provider=”manual”]
import numpy as np
from scipy import stats # o mesmo para outros submódulos
[/pastacode]
O principal namespace scipy contém principalmente funções que são realmente funções numpy (tente scipy.cos is np.cos). Esse são expostos apenas por razões históricas, geralmente não há razão para usar import scipy em seu código.