大家都知道Python运行速度很慢,但是轮子多,因此用户十分广泛,在各种领域上都能用到Python,但是最头疼的还是,解决运行速度问题,因此这里给大家介绍的是numba,是基本是等于再造语言。但是支持的numpy函数并不多。要让能jit的函数多起来才行。下面就详细介绍使用numba提升python运行速度方法。
numba简介:
能够实现将python函数编译为机器代码,提高运行速度。
工作作用:
给python换一种编译器
使用numba:
1、导入numba及其编译器
import numpy as np import numba from numba import jit
2、传入numba装饰器jit,编写函数
@jit(nopython=True) def go_fast(a): trace = 0 for i in range(a.shape[0]): trace += np.tanh(a[i, i]) return a + trace
3、函数传入实参
x = np.arange(100).reshape(10, 10) go_fast(x)
4、加速的函数执行时间
% timeit go_fast(x)
知识点扩展:
numba适合科学计算
numpy是为面向numpy数组的计算任务而设计的。
在面向数组的计算任务中,数据并行性对于像GPU这样的加速器是很自然的。Numba了解NumPy数组类型,并使用它们生成高效的编译代码,用于在GPU或多核CPU上执行。特殊装饰器还可以创建函数,像numpy函数那样在numpy数组上广播。
什么情况下使用numba呢?
- 使用numpy数组做大量科学计算时
- 使用for循环时