利用numba 的 @jit 加快 for 循环操作
最近在做一个matlab脚本转python的工作,但出现问题在,python的执行时间太长,具体表现为matlab 1s左右,python要接近于4s
经过简单测试,发现python和matlab的for循环耗时有较大不同
matlab
python
解决办法
在耗时很长的函数前面加上 @jit(nopython=True)
,
注意使用前记得导入 jit from numba import jit
, 没有安装 numba
的记得安装一下, pip install numba
,如果出现超时问题请参见 pip安装库总是安不上,一直出错
结果
作用
使用 jit 装饰器表明我们希望将该函数转换为机器代码,然后参数 nopython 指定我们希望 Numba 采用纯机器代码,或者有必要的情况加入部分 Python 代码,这个参数必须设置为 True 来得到更好的性能,除非出现错误。