可以允许不完美,但不能不做

Numba

简介

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