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.