NumPy e SciPy – Conhecendo duas bibliotecas do Python

Entre para nossa lista e receba conteúdos exclusivos!

O NumPy e SciPy são duas importantes bibliotecas da linguagem de programação Python. Certamente, um dos aspectos que mais destacam o Python de outras linguagens de programação é a variedade de recursos já existentes que estão disponíveis em diversas bibliotecas. Em verdade, atualmente contamos com bibliotecas específicas para determinadas funções, nesse sentido, a escolha por programar em Python se torna vantajosa aos usuários ao passo que permite aos mesmos uma facilidade para seus interesses frente a essa gama de tecnologias.

Nesse sentido, decidimos nesse artigo elaborar um guia sobre duas grandes bibliotecas do Python: NumPy e SciPy. Com efeito, essas duas bibliotecas são, além de muito difundidas, empregadas em diversos cálculos envolvendo computação científica. Assim, ao passo que ambas as bibliotecas destinam-se a cálculos de computação científica ambas podem se tornar fortes aliadas para você gurunauta que está adentrando em áreas numéricas de trabalho ou mesmo caso você queira desenvolver algum tipo de pesquisa ou apenas para ter plus no seu repertório de programação.

Então gurunauta, vamos agora conhecer um pouco mais de dois gigantes do mundo Python.

Computação científica no Python

Antes de tudo, vamos entender em que contexto estamos ao nos referirmos à computação científica. Com efeito, quando nós nos referimos a computação científica estamos entrando num contexto de uma área interdisciplinar a qual permeia entre conhecimentos da ciência da computação e de domínios científicos específicos para resolver problemas complexos por meio do uso de computadores e técnicas computacionais avançadas.

Portanto, essa área se envolve em diferentes etapas do processo de estudo de um dado problema físico. Em particular, ela está relacionada ao desenvolvimento e a aplicação de algoritmos, modelagem matemática, simulações numéricas, análise de dados e visualização para investigar fenômenos científicos, fazer previsões, realizar experimentos virtuais, otimizar processos e muito mais.

Alguns exemplos práticos do uso da computação científica

Em suma, há diversos exemplos que podemos citar que fazem uso direto dessa área. Em particular, alguns problemas interessantes que somos apresentados já em cursos de graduação (esses por sua vez apresentados numa escala que podem ser resolvidos de forma analítica sem a necessidade de recorrermos a recursos computacionais) são:

  • Solução de sistemas lineares,
  • Solução de Equações Diferenciais Ordinárias e Parciais (EDOs e EDPs),
  • Exponenciação de matrizes,
  • Determinação de autovalores e autovetores,
  • Métodos de integração e diferenciação numérica.

Decerto, poderíamos continuar a citar diversos outros problemas matemáticos que podem ser facilmente postos para solução via recursos numéricos. Ademais, esses problemas se fazem de fundamental importância para o estudo de problemas reais ao passo que com computação científica conseguimos tratá-los em grande escala, por exemplo, resolvendo sistemas lineares de ordens extremamente grandes, a citar ordens superiores a de 1000.

Assim, como muitos problemas de diversas áreas, como física, química, biologia, engenharia, ciências da terra, ciências ambientais, economia, medicina e muitas outras podem ser postas no formalismo dos problemas supracitados segue que para todas elas podemos usar computação científica.

Diferenças entre Numpy e Scipy

Então, feita as devidas considerações sobre a computação científica vamos agora adentrar um pouco mais sobre o que são essas duas incríveis bibliotecas do mundo Python.

Basicamente, a grande diferença entre essas duas bibliotecas é seu foco e objetivo. Com relação ao Numpy, vemos que seu foco é atacar problemas com arrays, isto é, vetores os quais podemos associar a listas e tuplas sem quaisquer problemas e assim tratar sistemas matriciais que são vetores multidimensionais. Não obstante, ao passo que ela introduz o objeto “array” segue que há diversas funções e métodos que já estão disponíveis para qualquer usuário utilizar, tais métodos podem fazer processos como: diagonalizar vetores matriciais, determinar funções conhecidas como seno, cosseno e afins.

Por outro lado, o SciPy é uma biblioteca que foi construida sobre o NumPy de forma a objetivar desenvolver ferramentas robustas e avançadas para computação científica. Nesse sentido, o SciPy destaca-se por métodos de interpolação, estatística, álgebra linear, equações diferenciais, integração numérica. Esses métodos são tais que podemos implementar facilmente aliando-os ainda com a biblioteca NumPy. Não só isso, mas um dos grandes aspectos e méritos dessa biblioteca é a possibilidade de atacarmos problemas mais complexos sendo alguns que merecem extremo destaque:

  • Implementação de funções especiais como funções esféricas de Bessel, Funções de Hankel, Funções elípticas, Integrais elípticas e outras.
  • Tratamento robusto para implementação da transformada de Fourier, ajustes de curvas e outras.

Instalação das bibliotecas – Como instalar o NumPy e SciPy

Primeiro, vamos te mostrar como você instalar rapidamente as bibliotecas. Em suma, apresentaremos as formas de instalar as bibliotecas com uso do pip e conda. Entretanto, é importante que você saiba que caso esteja utilizando o google colab para programar basta utilizar o pip para ambas que você já irá cumprir seu objetivo de ter acesso a essas bibliotecas.

Assim, começamos com a biblioteca NumPy que você pode instalar, em Linux, diretamente com pip ou Conda usando os seguintes comandos no Terminal

instalação do numpy com pip e conda para um tutorial sobre numpy e scipy.

Ademais, você pode conferir, caso precise de um método mais específico ou usar algum outro sistema operacional o próprio tutorial disponível na documentação do NumPy.

Por outro lado, segue que a biblioteca SciPy pode ser instalada de forma essencialmente análoga. Com efeito, veja a seguir os métodos usados para a instalação com pip e Conda.

Instalação da biblioteca Scipy com pip e conda para um tutorial envolvendo Numpy e Scipy.

Analogamente, caso precise de detalhes extras para seu computador consulte a documentação do SciPy.

Alerta! Não confunda SciPy com SymPy

Agora é hora de fazermos um importante alerta. De fato, o Python não limita-se apenas as bibliotecas NumPy e SciPy para computação científica, em verdade, há outros grandes nomes como o Pandas, Plotly, matplotlib, Quspin, Qutip, Quiskit (Sendo essas últimas três voltadas para a computação numérica aplicada em Mecânica Quântica bem legal em gurunauta!) e uma bem famosa chamada SymPy. Em verdade, o SymPy é uma biblioteca bem, mas bem diferente do SciPy pois essa biblioteca foca-se para outro tipo de computação.

Decerto, além dos problemas numéricos que já mencionamos há ainda uma grande variedade de questões que podem ser consideradas sendo uma delas a incrível computação simbólica. Com efeito, a computação simbólica é na verdade uma forma com que softwares podem realizar cálculos com expressões matemáticas sem ter a necessidade utilizar números propriamente ditos, dessa forma, pode-se por exemplo ter-se enormes expressões algébricas dependentes de vários coeficientes e essa ser tratada, simplificada, integrada, derivada e afins com uso dessa computação.

Nesse contexto é onde vemos o SymPy entrando em ação. Uma vez que, essa biblioteca tem como foco atacar problemas com computação simbólica. Certamente, esses cálculos são extremamente robustos e demandam bem mais recursos computacionais que apenas a implementação numérica, entretanto, para problemas específicos esses são extremamente necessários. Ademais, a computação algébrica ainda é um forte recurso para pesquisadores que trabalham com problemas puramente analíticos, pois esses passam a ser passíveis de implementação com computação simbólica e, no caso do Python é a biblioteca SymPy que cuida desses problemas com maestria e simplicidade que só o Python consegue ter.

Referências

  • NumPy. A fundamental package for scientific computing with Python. Disponível em: https://numpy.org/. Acesso em: 25 de março de 2024.
  • HUNTER, John D. Matplotlib: A 2D graphics environment. Computing in Science & Engineering, v. 9, n. 3, p. 90-95, 2007. Disponível em: https://doi.org/10.1109/MCSE.2007.55. Acesso em: 25 de março de 2024.
  • SCI-PY. Fundamental algorithms for scientific computing in Python. Disponível em: https://scipy.org/. Acesso em: 30 mar. 2024.
  • BEAZLEY, David; JONES, Brian K. Python Cookbook. 3ª edição. Sebastopol: O’Reilly Media, 2013.

Outros Artigos

Legal

® 2021-2024 Meu Guru | 42.269.770/0001-84 • Todos os direitos reservados

Entre para nossa lista e receba conteúdos exclusivos!