Execução de Operações Matemáticas em Python: NumPy

O NumPy é uma biblioteca fundamental e amplamente utilizada no campo da ciência de dados, dado que fornece uma funcionalidade eficiente de manipulação e análise de dados. Desde seu release inicial, vários projetos têm utilizado essa biblioteca, pois ela permite que os Devs realizem operações combinadas por meio de ferramentas como: geradores de números aleatórios, rotinas de álgebra linear, transformadas de Fourier, manipulação de arrays e muito mais.

A biblioteca é fácil de usar para programadores de diferentes níveis de experiência e conhecimento. Dessa forma, o Numpy contribui na fácil adoção e transição daqueles que ainda não estão familiarizados com essa linguagem. Em geral, os principais casos de uso do NumPy são:

  • Operações matemáticas: o NumPy oferece funções matemáticas compreensíveis, fazendo com que seja útil para integração numérica, diferenciação, regressão polinomial e muito mais.
  • Processamento de imagens: NumPy permite executar uma ampla variedade de operações em imagens. Alguns exemplos incluem manipulação simples de imagens (cortar, redimensionar, girar e inverter), implementação de filtros, conversão para formato binário, conversão de espaço de cores e muito mais.
  • Machine Learning: Ao projetar algoritmos de Machine Learning (ML) é comum operar com arrays para realizar operações matemáticas complexas, como multiplicação, divisão, inversão, decomposição, análise de Fourier, determinação de gradientes e cálculo infinitesimal. Nesse contexto, os arrays são comumente usados ​​para armazenar dados e parâmetros, pois são adequados para lidar eficientemente com grandes quantidades de dados numéricos.

O que torna o NumPy único em comparação com o MATLAB

NumPy e MATLAB são ferramentas muito conhecidas tanto na computação numérica quanto na manipulação de dados. As duas ferramentas oferecem funcionalidades para trabalhar com um grande volume de dados armazenados em arrays. Eles usam sintaxe e convenções semelhantes para operar com arrays, tornando mais fácil para os usuários passar de uma linguagem para outra. Apesar dessas semelhanças, o NumPy também se destaca de outras formas.

Por exemplo, numpy.resize(a, new_shape) permite aos Devs modificar o tamanho de um array durante um runtime. Você pode redimensionar um array para uma nova enquanto mantém os dados existentes.

O NumPy oferece várias vantagens sobre o MATLAB, como ser de código aberto, oferecer suporte a uma ampla variedade de tipos de dados, ter uma forte comunidade de desenvolvedores, usuários e contribuidores. Por outro lado, temos o GNU Octave que é uma versão de código aberto do MATLAB, mas com poucos recursos.

Além disso, por estar construído sobre o Python, o NumPy pode ser executado em diferentes ambientes (CONDA, navegador da web), sistemas operacionais (Windows, linux, macOS) e arquiteturas de CPU. O NumPy pode trabalhar em conjunto com muitas outras bibliotecas que estão sendo constantemente atualizadas e aprimoradas.

Em resumo, o NumPy é uma importante biblioteca de Python na computação numérica que fornece uma interface semelhante a outros softwares numéricos como IDL, MATLAB, Yorick, mas também funcionalidades para trabalhar com arrays de dados homogêneos, fazendo dela uma ferramenta essencial para cientistas e engenheiros de dados.

Projetos construídos com base no NumPY 

Os objetos ndarray do NumPy fornecem uma API avançada para trabalhar com dados estruturados em arrays e uma estratégia de armazenamento na RAM. No entanto, essa API possui limitações, uma vez que os dados aumentam e novos ambientes e arquiteturas surgem, levando aos Devs executar projetos construídos sobre a API de NumPy:

  • XArray: Este projeto visa estender os recursos de ndarray do NumPy para fornecer uma interface mais flexível e intuitiva para trabalhar com arrays multidimensionais, com foco na identificação de arrays e na capacidade de trabalhar com conjuntos de dados tanto na memória quanto fora dela.
  • JAX: É uma biblioteca de código aberto que combina a funcionalidade de Autograd e XLA, as mesmas que são usadas para realizar operações de diferenciação de funções e para construir e executar operações de Machine Learning em GPUs e TPUs.
  • Numpy.ma: Este módulo fornece uma forma simples para lidar com dados ausentes ou inválidos em arrays, tratando eles como entidades separadas ao invés de trocá-los por um valor específico como NaN. O Numpy.ma também permite você executar cálculos e análises de dados mais precisos.
  • Astropy.units: A biblioteca faz parte do projeto Astropy, uma coleção de pacotes para a astronomia e a astrofísica. A biblioteca astropy.units fornece uma forma simples de adicionar unidades nos números, executar operações matemáticas e garantir que as unidades sejam consistentes.
  • SciPy: É uma biblioteca que fornece funcionalidades para operações de otimização, interpolação, integração, processamento de sinais e de imagens. Além disso, serve como uma interface para outras bibliotecas como BLAS, LAPACK e ARPACK, bem como o Matplotlib e o SymPy.
  • Scikit Learn: É uma biblioteca usada para projetos de ML que fornece ferramentas de classificação, regressão, agrupamento e seleção de modelos. Além disso, também contém algoritmos para executar operações logísticas e regressão linear, agrupamento k-means, árvores de decisão, random forest, aumento de gradiente e muito mais.
  • Pandas: É uma biblioteca baseada no NumPy. O Pandas fornece funcionalidade para ler e armazenar dados em vários formatos, lidar com dados em falta, de data e hora, bem como unir, organizar, agrupar, filtrar dados e realização de merging.

Método para importar NumPy

A instrução import  é a forma mais comum de importar uma biblioteca, mas não é a única. Os Devs também usam as instruções importlib.import_module() e built-in __import__(). Para importar a biblioteca NumPy, só precisa executar o seguinte comando:

import numpy as np
Comando de importação da biblioteca NumPy.

Observe que deve instalar essa biblioteca quando é usado o Jupyter Notebook. Outros IDEs geralmente não exigem isso. Para instalar, execute o seguinte comando no seu PC uma única vez.

!pip install numpy

Listas em Python vs. Arrays em NumPy

Uma lista em Python é uma estrutura de dados de uso geral (suporta diferentes tipos de dados), enquanto que uma matriz em NumPy é uma estrutura de dados especializada para realizar operações numéricas de forma mais eficiente.

my_list=[1,2,3,4]
print(my_list)
#R. [1, 2, 3, 4]

my_array=np.array([1,2,3,4])
print(my_array)
#R. [1 2 3 4]

Note nos exemplos acima que, nos arrays a vírgula (,) não separa os valores, enquanto as listas a utilizam.

Para mais informações, consulte o nosso blog.

Resumo

O NumPy é uma biblioteca que suporta arrays multidimensionais e de grande tamanho, assim como também funções matemáticas avançadas para operar neles. Além disso, devido que o Python é uma linguagem interpretada, o NumPy fornece funcionalidades semelhantes ao MATLAB, permitindo que os usuários criem programas rápidos, desde que elas se executem como arrays ao invés do uso de escalares.

Scroll to Top