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 Arrays Recursos e áreas de aplicação
Dask Dask Arrays distribuídas e paralelismo avançado para análise, permitindo desempenho em escala.
CuPy CuPy Biblioteca de matriz compatível com NumPy para computação acelerada pela GPU com Python.
JAX JAX Transformações combináveis de programas NumPy: vetorização, compilação just-in-time para GPU/TPU.
xarray Xarray Arrays multidimensionais rotuladas e indexadas para análise e visualização avançadas
sparse Sparse Biblioteca de arrays compatíveis com o NumPy que pode ser integrada com Dask e álgebra linear esparsa da SciPy.
PyTorch PyTorch Framework de deep learning que acelera o caminho entre prototipação de pesquisa e colocação em produção.
TensorFlow TensorFlow Uma plataforma completa para aprendizagem de máquina que permite construir e colocar em produção aplicações usando ML facilmente.
MXNet MXNet Framework de deep learning voltado para flexibilizar prototipação em pesquisa e produção.
arrow Arrow Uma plataforma de desenvolvimento multi-linguagens para dados e análise para dados armazenados em colunas na memória.
xtensor xtensor Arrays multidimensionais com broadcasting e avaliação preguiçosa (lazy computing) para análise numérica.
awkward Awkward Array Manipulação de dados JSON-like com sintaxe NumPy-like.
uarray uarray Sistema de backend Python que dissocia a API da implementação; unumpy fornece uma API NumPy.
tensorly tensorly Ferramentas para aprendizagem com tensores, algebra e backends para usar NumPy, MXNet, PyTorch, TensorFlow ou CuPy sem esforço.

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.

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