Repolode
pydata

pydata/numexpr

Avaliador rápido de expressões em arrays NumPy que calcula expressões como 3*a+4*b em blocos, usando menos memória e vários núcleos.

Estrelas
2,544
Forks
233
Issues abertas
18
Último commit
há 7 dias

O que é?

O NumExpr avalia expressões numéricas em arrays NumPy, como '3*a+4*b', com mais rapidez e usando menos memória do que calcular o mesmo resultado em Python puro. Ele evita alocar arrays temporários para resultados intermediários e processa os dados em pequenos blocos que cabem no cache da CPU.

Os blocos são distribuídos entre os núcleos de CPU disponíveis, permitindo que os cálculos sejam executados em várias threads. As expressões podem usar funções matemáticas comuns e comparações entre arrays de strings. O suporte a Intel MKL/VML pode acelerar ainda mais as funções transcendentais quando o projeto é compilado com MKL.

Os ganhos de velocidade em relação ao NumPy dependem da expressão e do tamanho do array. O projeto observa que eles costumam ser maiores com arrays grandes e expressões complexas.

Recursos principais

  • 01Avalia expressões em arrays sem alocar temporários intermediários.
  • 02Divide o trabalho em blocos do tamanho do cache e os distribui entre os núcleos de CPU.
  • 03Oferece suporte a funções matemáticas comuns e comparações entre arrays de strings.
  • 04Aceleração opcional de funções transcendentais com Intel MKL/VML.
  • 05Pode ser instalado com pip ou conda.

Casos de uso

  • Acelerar cálculos grandes, elemento a elemento, em arrays NumPy.
  • Filtrar dados ou calcular condições em arrays grandes, como em consultas do Pandas ou PyTables.
  • Reduzir o uso de memória em código numérico que trabalha intensamente com arrays.

Início rápido

  1. 1

    Instale do PyPI com pip

    pip install numexpr
  2. 2

    Ou instale com conda se você usa Anaconda ou Miniconda

    conda install numexpr
  3. 3

    Avalie uma expressão em arrays do NumPy

    python -c "import numpy as np, numexpr as ne; a = np.arange(1e6); print(ne.evaluate('a + 1'))"

Antes de usar

  • Os ganhos de velocidade são pequenos para expressões muito simples e funcionam melhor com arrays grandes.
  • Os wheels do pip não incluem suporte ao Intel MKL; o MKL está disponível apenas nas compilações do conda quando o NumPy usa MKL.
  • O projeto está buscando financiamento para o futuro, então a manutenção a longo prazo é incerta.

Tópicos

Perguntas frequentes

O que é numexpr?
Avaliador rápido de expressões em arrays NumPy que calcula expressões como 3*a+4*b em blocos, usando menos memória e vários núcleos. O NumExpr avalia expressões numéricas em arrays NumPy, como '3*a+4*b', com mais rapidez e usando menos memória do que calcular o mesmo resultado em Python puro. Ele evita alocar arrays temporários para resultados intermediários e processa os dados em pequenos blocos que cabem no cache da CPU.
numexpr é gratuito? Qual é a licença?
numexpr é open source sob a licença MIT. Confira os termos da licença antes de usá-lo em produtos comerciais.
numexpr ainda é mantido?
Manutenção ativa. O último commit de numexpr foi em 13 de out. de 2026.
Para que posso usar numexpr?
Acelerar cálculos grandes, elemento a elemento, em arrays NumPy. Filtrar dados ou calcular condições em arrays grandes, como em consultas do Pandas ou PyTables. Reduzir o uso de memória em código numérico que trabalha intensamente com arrays.
Como instalar numexpr?
Instale do PyPI com pip: pip install numexpr Ou instale com conda se você usa Anaconda ou Miniconda: conda install numexpr Avalie uma expressão em arrays do NumPy: python -c "import numpy as np, numexpr as ne; a = np.arange(1e6); print(ne.evaluate('a + 1'))"
Onde consigo numexpr?
O código-fonte e as instruções de instalação estão no GitHub: https://github.com/pydata/numexpr

Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.

Projetos relacionados