Overview ======== Numba gives you the power to speed up your applications with high performance functions written directly in Python. Numba generates optimized machine code from pure Python code using the `LLVM compiler infrastructure `_. With a few simple annotations, array-oriented and math-heavy Python code can be just-in-time optimized to performance similar as C, C++ and Fortran, without having to switch languages or Python interpreters. Numba's main features are: * :ref:`on-the-fly code generation ` (at import time or runtime, at the user's preference) * native code generation for the CPU (default) and :doc:`GPU hardware ` * integration with the Python scientific software stack (thanks to Numpy) Here is how a Numba-optimized function, taking a Numpy array as argument, might look like:: @numba.jit def sum2d(arr): M, N = arr.shape result = 0.0 for i in range(M): for j in range(N): result += arr[i,j] return result