利用Numba为python代码加速
numba库可以通过即使编译技术为,Python语言进行加速。以下的例子可以看到numba所带来的优势。用来测试的函数是一个求和矩阵和的函数,能够对二维矩阵进行其中元素的求和,采用for循环完成。numba库的加速,对于还有循环的代码,加速效果特别明显
未采用numba加速import numpy as np
import numba as nb
def test_numpy(a):
m, n = a.shape # 获得这个矩阵两个维度的元素个数
# 采用遍历的方式进行求和
s = 0 # sum进行初始化,为0
# 二维矩阵采用两个for循环完成
for row in np.arange(m):
for col in np.arange(n):
s += a[row, col]
return s
np.random.seed(1927)
A = np.random.randn(1000, 1000)%%timeit
test_numpy(A)275 ms ± 19.6 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)
采用numba加速@nb.jit(nopython=True)
def test_numba(a):
m, n = a.shape # 获得这个矩阵两个维度的元素个数
# 采用遍历的方式进行求和
s = 0 # sum进行初始化,为0
# 二维矩阵采用两个for循环完成
for row in np.arange(m):