Best NumPy acceleration libraries in 2026
Compare NumPy acceleration libraries by how they speed up array code: compilers, expression evaluators, GPU arrays and a patch-in option.
SayDeploy is published by LunarWerx, which makes some of the tools compared here.
These tools speed up array code in different ways. Numba translates a subset of Python and NumPy code into machine code. [1] NumExpr evaluates numerical expressions for NumPy. [2] Cython is a static compiler for Python and the extended Cython language. [3] Bottleneck is a collection of NumPy array functions written in C. [4] JAX uses XLA to compile NumPy programs for accelerators. [5] CuPy is an array library for GPU-accelerated computing with Python. [6] Pythran is an ahead-of-time compiler for a subset of Python. [7] PyOverdrive patches supported NumPy functions so existing code uses faster paths. [8]
| Option | Main role | Published licence or platform detail |
|---|---|---|
| Numba | Open source JIT compiler for a subset of Python and NumPy code. [1] | Lists Python 3.9-3.12. [1] |
| numexpr | Fast numerical expression evaluator for NumPy. [2] | MIT license. [2] |
| Cython | Optimising static compiler for Python and Cython. [3] | Apache 2.0 License. [3] |
| Bottleneck | Fast NumPy array functions written in C. [4] | Simplified BSD license. [4] |
| JAX | Compiles NumPy programs with XLA for accelerators. [5] | Apache-2.0 license. [5] |
| CuPy | Open-source GPU array library. [6] | Wheels for Linux and Windows. [6] |
| Pythran | Ahead-of-time compiler for a subset of Python. [7] | BSD-3-Clause license. [7] |
| PyOverdrive | Patches supported NumPy functions to use faster paths. [8] | MIT License; needs Python 3.12 or newer. [8] [8] |
How to read this list
These tools overlap around one problem: making array code in Python run faster. The important difference is how each one does it. Numba is a JIT compiler for a subset of Python and NumPy code. [1] numexpr evaluates numerical array expressions. [2] Cython is an optimising static compiler for Python and the extended Cython language. [3] Bottleneck is a collection of fast NumPy array functions written in C. [4] JAX uses XLA to compile NumPy programs for TPUs, GPUs and other accelerators. [5] CuPy is an open-source array library for GPU-accelerated computing with Python. [6] Pythran is an ahead-of-time compiler for a subset of Python, with a focus on scientific computing. [7] PyOverdrive patches supported NumPy functions so existing code uses faster paths. [8]
Numba: compile Python and NumPy code at runtime
Numba is an open source JIT compiler that translates a subset of Python and NumPy code into fast machine code. [1] It uses the LLVM compiler library to produce optimized machine code at runtime. [1] Numba is designed to be used with NumPy arrays and functions. [1]
Its page says compiled numerical algorithms can approach the speeds of C or FORTRAN. [1] It supports NVIDIA CUDA for writing parallel GPU algorithms from Python. [1] It supports Intel and AMD x86, POWER8/9, and ARM CPUs including Apple M1. [1] The page lists Python 3.9-3.12. [1]
numexpr: evaluate array expressions with less memory
NumExpr is a fast numerical expression evaluator for NumPy. [2] Its page says expressions that operate on arrays, like 3a+4b, are accelerated and use less memory than doing the same calculation in Python. [2]
Its multi-threaded capabilities can make use of all your cores. [2] It can use Intel's VML, the Vector Math Library. [2] It is distributed under the MIT license. [2] It can be installed with pip for a wide range of platforms and Python versions. [2]
Cython: compile Python and Cython code ahead of time
Cython is an optimising static compiler for both the Python language and the extended Cython language. [3] It is freely available under the open source Apache 2.0 License. [3]
The latest stable release is 3.2.9, released 2026-07-24. [3] Cython 3.0.x supports Python 2.7 and 3.5 and later. [3] Support for the CPython Limited API and free-threading CPython is available in Cython 3.1 but considered experimental. [3]
Bottleneck: fast array functions written in C
Bottleneck is a collection of fast NumPy array functions written in C. [4] Only arrays with dtype int32, int64, float32 and float64 are accelerated. [4]
It is distributed under a Simplified BSD license. [4] It provides binary wheels on PyPI for the most common platforms. [4] It comes with a benchmark suite. [4]
JAX: compile NumPy programs for accelerators
JAX uses XLA to compile and scale NumPy programs on TPUs, GPUs and other hardware accelerators. [5] It supports reverse-mode and forward-mode differentiation. [5]
The CPU install command is pip install -U jax. [5] It is licensed under Apache-2.0. [5] Its page says it is a research project, not an official Google product. [5]
CuPy: a GPU array library with a NumPy-style interface
CuPy is an open-source array library for GPU-accelerated computing with Python. [6] In most cases it can be used as a drop-in replacement for NumPy and SciPy. [6]
It provides wheels, which are precompiled binary packages, for Linux and Windows. [6] Its page says it speeds up some operations more than 100X. [6]
Pythran: compile a subset of Python for scientific computing
Pythran is an ahead-of-time compiler for a subset of the Python language, with a focus on scientific computing. [7] It takes advantage of multi-cores and SIMD instruction units. [7]
It only supports Python 3.7 and upward. [7] It uses the BSD-3-Clause license. [7]
PyOverdrive: faster paths for supported NumPy calls
PyOverdrive is made by the team that publishes this site. Calling pyoverdrive.enable() patches supported NumPy functions so your existing code uses faster paths, and calls it does not support run on stock NumPy. [8] A fast path runs only when a check confirms the input is in its measured range; anything else, or a fast path that raises an error, goes to stock NumPy. [8]
The command python -m pyoverdrive --selfcheck compares every fast path with stock NumPy on your own machine. [8] pyoverdrive.explain() tells you which path a call would take and why, without running the call. [8] You can turn off one fast path with disable_path() or PYOVERDRIVE_DISABLE, or call pyoverdrive.disable() to restore the original NumPy functions. [8]
It is open source under the MIT License. [8] It needs Python 3.12 or newer. [8] You install it with pip straight from the GitHub repository. [8] The version is 1.0.0 and its status is Beta. [8]
How to choose
Start with what you want to change. If you want to compile numerical Python functions, Numba translates a subset of Python and NumPy code to machine code. [1] If your hot spot is an array expression, numexpr evaluates those. [2] If you want to write in a compiled language that extends Python, Cython is a static compiler for it. [3] For scientific code in a Python subset, Pythran compiles ahead of time. [7]
If you need a GPU, CuPy offers a GPU array library, and JAX compiles NumPy programs for accelerators. [6] [5] If your work is NumPy array functions on int32, int64, float32 or float64 data, Bottleneck provides them in C. [4] [4]
If you want existing NumPy code to use faster paths without rewriting it, PyOverdrive patches supported functions and leaves others on stock NumPy. [8] Threaded paths cover np.sin, cos, tan, exp, log, log10 and tanh on C-contiguous float64 or float32 arrays, above a size floor calibrated per operation and data type (3e5-3e6 elements). [8] Before choosing, check your Python version, your hardware, and whether your code uses the functions each tool covers.
Frequently asked questions
What is the difference between Numba and Cython?
Numba is an open source JIT compiler that translates a subset of Python and NumPy code into machine code. [1] Cython is an optimising static compiler for Python and the extended Cython language. [3] Check which of the two fits how you want to work.
Is CuPy a drop-in replacement for NumPy?
Its page says that in most cases CuPy can be used as a drop-in replacement. [6] It is an open-source array library for GPU-accelerated computing with Python. [6] It provides wheels for Linux and Windows. [6] Check that your hardware and functions are covered.
What does numexpr speed up?
NumExpr is a fast numerical expression evaluator for NumPy. [2] Its page says expressions that operate on arrays are accelerated and use less memory than doing the same calculation in Python. [2] Its multi-threaded capabilities can make use of all your cores. [2]
What does PyOverdrive do to NumPy code?
Calling pyoverdrive.enable() patches supported NumPy functions so your existing code uses faster paths, and calls it does not support run on stock NumPy. [8] You can turn off one fast path with disable_path() or PYOVERDRIVE_DISABLE, or call pyoverdrive.disable() to restore the original NumPy functions. [8] The pyoverdrive.explain() call tells you which path a call would take and why, without running the call. [8]
Is PyOverdrive free and which Python does it need?
It is open source under the MIT License. [8] It needs Python 3.12 or newer. [8] You install it with pip straight from the GitHub repository. [8] The version is 1.0.0 and its status is Beta. [8]
Which Python versions does Pythran support?
Pythran's page says it only supports Python 3.7 and upward. [7] It is an ahead-of-time compiler for a subset of Python, with a focus on scientific computing. [7] It uses the BSD-3-Clause license. [7]
It is open source under the MIT License. [8]
Try PyOverdriveSources
- Numba, numba.pydata.org, read 2026-10-07
- numexpr, github.com/pydata/numexpr, read 2026-10-07
- Cython, cython.org, read 2026-10-07
- Bottleneck, github.com/pydata/bottleneck, read 2026-10-07
- JAX, github.com/jax-ml/jax, read 2026-10-07
- CuPy, cupy.dev, read 2026-10-07
- Pythran, github.com/serge-sans-paille/pythran, read 2026-10-07
- PyOverdrive's own description of itself (the product of this site's publisher)
Related comparisons
- Best NumPy acceleration libraries for data scientists in 2026
- Bottleneck alternatives in 2026 for NumPy speed
- CuPy alternatives in 2026 for NumPy acceleration
- Cython alternatives in 2026 for NumPy code
- Best CSV import and field mapping tools in 2026
- Best Git GUI clients for developers in 2026
- Best local dev server managers in 2026
- AnatomyOf vs Codecademy in 2026: Pricing, Setup and Features
- AnatomyOf vs DevDocs in 2026: Pricing, Setup, Features
- AnatomyOf vs Exercism in 2026: Pricing, Setup and Features