NumPy
A biblioteca fundamental para computação científica com Python
NumPy versão 1.26.0
2023-09-16
Arrays n-dimensionais poderosas
Rápidos e versáteis, os conceitos de vetorização, indexação e broadcasting do NumPy são, na prática, o padrão em computação com arrays.
Ferramentas de computação numérica
O NumPy oferece um conjunto completo de funções matemáticas, geradores de números aleatórios, rotinas de álgebra linear, transformadas de Fourier, e mais.
Interoperabilidade
O NumPy suporta um grande número de plataformas de hardware e computação, e pode ser combinado com bibliotecas de computação com arrays esparsas, distribuidas ou em GPUs.
Alto desempenho
O núcleo do NumPy é feito de código otimizado em C. Experimente a flexibilidade do Python com a velocidade de código compilado.
Fácil de usar
A sintaxe de alto nível do NumPy torna-o acessível e produtivo para programadores de qualquer nível de experiência e formação.
Código aberto
Distribuido com uma licença BSD liberal, o NumPy é desenvolvido e mantido publicamente no GitHub por uma comunidade vibrante, responsiva, e diversa.
Experimentar o NumPy

Use o shell interativo para testar o NumPy no navegador

"""
To try the examples in the browser:
1. Type code in the input cell and press
   Shift + Enter to execute
2. Or copy paste the code, and click on
   the "Run" button in the toolbar
"""

# The standard way to import NumPy:
import numpy as np

# Create a 2-D array, set every second element in
# some rows and find max per row:

x = np.arange(15, dtype=np.int64).reshape(3, 5)
x[1:, ::2] = -99
x
# array([[  0,   1,   2,   3,   4],
#        [-99,   6, -99,   8, -99],
#        [-99,  11, -99,  13, -99]])

x.max(axis=1)
# array([ 4,  8, 13])

# Generate normally distributed random numbers:
rng = np.random.default_rng()
samples = rng.normal(size=2500)
samples

ECOSSISTEMA

Quase todos os cientistas que trabalham em Python se baseiam na potência do NumPy.

NumPy traz o poder computacional de linguagens como C e Fortran para Python, uma linguagem muito mais fácil de aprender e usar. Com esse poder vem a simplicidade: uma solução no NumPy é frequentemente clara e elegante.

A API do NumPy é o ponto de partida quando bibliotecas são escritas para explorar hardware inovador, criar tipos de arrays especializados, ou adicionar capacidades além do que o NumPy fornece.

Biblioteca de ArraysRecursos e áreas de aplicação
DaskDaskArrays distribuídas e paralelismo avançado para análise, permitindo desempenho em escala.
CuPyCuPyBiblioteca de matriz compatível com NumPy para computação acelerada pela GPU com Python.
JAXJAXTransformações combináveis de programas NumPy: vetorização, compilação just-in-time para GPU/TPU.
xarrayXarrayArrays multidimensionais rotuladas e indexadas para análise e visualização avançadas
sparseSparseBiblioteca de arrays compatíveis com o NumPy que pode ser integrada com Dask e álgebra linear esparsa da SciPy.
PyTorchPyTorchFramework de deep learning que acelera o caminho entre prototipação de pesquisa e colocação em produção.
TensorFlowTensorFlowUma plataforma completa para aprendizagem de máquina que permite construir e colocar em produção aplicações usando ML facilmente.
MXNetMXNetFramework de deep learning voltado para flexibilizar prototipação em pesquisa e produção.
arrowArrowUma plataforma de desenvolvimento multi-linguagens para dados e análise para dados armazenados em colunas na memória.
xtensorxtensorArrays multidimensionais com broadcasting e avaliação preguiçosa (lazy computing) para análise numérica.
awkwardAwkward ArrayManipulação de dados JSON-like com sintaxe NumPy-like.
uarrayuarraySistema de backend Python que dissocia a API da implementação; unumpy fornece uma API NumPy.
tensorlytensorlyFerramentas para aprendizagem com tensores, algebra e backends para usar NumPy, MXNet, PyTorch, TensorFlow ou CuPy sem esforço.
Diagrama de bibliotecas Python. As cinco categorias são 'Extrair, Transformar, Carregar', 'Exploração de Dados', 'Modelo de Dados', 'Avaliação de Dados' e 'Apresentação de Dados'.

NumPy está no centro de um rico ecossistema de bibliotecas de ciência de dados. Um fluxo de trabalho típico de ciência de dados exploratório pode parecer assim:

For high data volumes, Dask andRay are designed to scale. Stabledeployments rely on data versioning (DVC),experiment tracking (MLFlow), andworkflow automation (Airflow andPrefect).

Diagram of three overlapping circle. The circles labeled 'Mathematics', 'Computer Science' and 'Domain Expertise'. In the middle of the diagram, which has the three circles overlapping it, is an area labeled 'Data Science'.

O NumPy forma a base de bibliotecas de aprendizagem de máquina poderosas como scikit-learn e SciPy. À medida que a disciplina de aprendizagem de máquina cresce, a lista de bibliotecas construidas a partir do NumPy também cresce. As funcionalidades de deep learning do TensorFlow tem diversas aplicações — entre elas, reconhecimento de imagem e de fala, aplicações baseadas em texto, análise de séries temporais, e detecção de vídeo. O PyTorch, outra biblioteca de deep learning, é popular entre pesquisadores em visão computacional e processamento de linguagem natural. O MXNet é outro pacote de IA, que fornece templates e protótipos para deep learning.

Técnicas estatísticas chamadas métodos de ensemble tais como binning, bagging, stacking, e boosting estão entre os algoritmos de ML implementados por ferramentas tais como XGBoost, LightGBM, e CatBoost — um dos motores de inferência mais rápidos. Yellowbrick e Eli5 oferecem visualizações para aprendizagem de máquina.

Um streamplot feito em matplotlib
Um gráfico scatter-plot feito em ggpy
Um box-plot feito no plotly
Um gráfico streamgraph feito em altair
A plot duplo com dois tipos de gráficos, um plot-graph e um gráfico de frequência feitos no seaborn
Uma renderização de volume 3D feita no PyVista.
Uma imagem multidimensional, feita em napari.
Diagrama de Voronoi feito com vispy.

NumPy é um componente essencial no crescente campo de visualização em Python, que inclui Matplotlib, Seaborn, Plotly, Altair, Bokeh, Holoviz, Vispy, Napari, e PyVista, para citar alguns.

O processamento de grandes arrays acelerado pela NumPy permite que os pesquisadores visualizem conjuntos de dados muito maiores do que o Python nativo poderia permitir.

ESTUDOS DE CASO