概述

Numba 是一个针对 Python 数组和数值函数的编译器,它赋予你通过直接在 Python 中编写高性能函数来加速应用程序的能力。

Numba 使用 LLVM编译器基础设施 从纯Python代码生成优化的机器代码。通过几个简单的注解,面向数组和数学密集型的Python代码可以即时优化到与C、C++和Fortran类似的性能,而无需切换语言或Python解释器。

Numba 的主要特点是:

  • 即时代码生成 (在导入时或运行时,根据用户偏好)

  • 为 CPU 生成原生代码(默认)和 GPU 硬件

  • 与Python科学软件栈的集成(感谢Numpy)

以下是一个采用Numba优化的函数,以Numpy数组作为参数的示例:

@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