Scientific Computing

numba

Makes ordinary Python code run at nearly the speed of hand-written C, with barely a line changed.

Install it: pip install numba

What does it do?

Numba watches a specific function you mark for speeding up and translates it, on the fly, into fast machine code just before it runs, skipping Python’s usual slower step-by-step execution entirely. You barely change your code, often just adding a single line above a function, and that function can suddenly run dozens or even hundreds of times faster for the right kind of numerical work. It’s like a translator who normally interprets a speech sentence by sentence, but for one specific speech decides to translate the whole thing in advance so it can be delivered at full native speed. It’s especially powerful for the number-crunching loops common in scientific computing but notoriously slow in plain Python.

See it in action

This marks a number-crunching function to be sped up automatically, then runs it on a million numbers and prints the result.

from numba import jit
import numpy as np

@jit(nopython=True)
def sum_squares(arr):
    total = 0.0
    for x in arr:
        total += x * x
    return total

data = np.arange(1_000_000, dtype=np.float64)
print(sum_squares(data))

Why would a non-developer care?

Speed is often the difference between an analysis that finishes in seconds versus one that takes hours, and Numba delivers that speed without forcing anyone to learn an entirely different, harder programming language just to write fast code.

Real-world examples

Numba is widely used in scientific computing, financial modeling, and data analysis pipelines where a particular calculation becomes a bottleneck and rewriting it in C or C++ would take too long. It’s commonly reached for by researchers doing simulations who need speed but don’t want to abandon Python’s readability. It’s built on LLVM, the same industrial-strength compiler technology used by major programming languages like Swift and Rust.

Who uses it

Scientists, engineers, and data analysts who need to speed up specific numerical Python code without rewriting it in a lower-level language.

How it compares to alternatives

Numba requires far less code restructuring than Cython, which involves writing a somewhat different Python-like dialect to get similar speedups, though Cython can sometimes achieve even greater performance for more complex cases; both exist because pure Python is often too slow for heavy numerical work.

Fun fact

Numba can compile the same Python function to run not just on your computer’s CPU but, with the right setup, directly on a graphics card’s GPU cores as well.

New to Python and want to actually try libraries like this yourself?

Find a beginner-friendly course

Related libraries