python加速器numba使用详解
作者:_刘文凯_ 时间:2022-02-27 15:24:22
python的一个加速器包,这里不讲原理,只讲应用过程,以及给出几个小例子,直接写就行了; 另外还给出了numba如何定义使用List
1、最简单的使用
当输出返回值为整数或浮点数时:
from numba import jit
@jit(nopython=True)
def f(x, y):
return x+y
if __name__ == '__main__':
a = 1
b = 1
print(f(a,b))
解释:
使用装饰器,另外,nopython=True是防止numba自动更改加速模式,也就是使用nopython。
上述代码等价于:
from numba import njit
@njit # 也就是jit(nopython=True)
def f(x, y):
return x+y
if __name__ == '__main__':
a = 1
b = 1
print(f(a,b))
2、进阶
当输出返回值为“不同类型值”时:
装饰器使用:generated_jit
from numba import generated_jit, typed
@generated_jit(nopython=True)
def f2(x):
if x==1:
return lambda x: x+1
else:
return lambda x: [1,2]
if __name__ == '__main__':
a = 1
print(f2(a))
当进行矩阵或向量运算时:
使用装饰器:vectorize
from numba import vectorize, float64
import numpy as np
@vectorize([float64(float64, float64)]) # 注意有中括号
def f(x, y):
return x + y
if __name__ == '__main__':
a = np.array([1,2])
b = np.array([2,2])
print(f(a,b))
补充
在numba内定义列表:
import numpy as np
import time
NUM = 160
from numba import jit
from numba.typed import List
a = List()
a.append(1) # 同样需要指定数据类型,塞个1,数据类型就是int
@jit(nopython=True)
def f(a):
for i in range(NUM):
a.append(i)
if __name__ == '__main__':
for i in range(5):
start = time.time()
f(a)
print(time.time()-start)
来源:https://blog.csdn.net/qq_24211837/article/details/124520545
标签:python,加速器,numba
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
php在windows环境下获得cpu内存实时使用率(推荐)
2023-11-15 04:44:23
用Python获取摄像头并实时控制人脸的实现示例
2022-12-11 09:50:21
如何处理好网页色彩搭配
2007-08-10 13:22:00
Python实现从url中提取域名的几种方法
2022-03-14 12:55:30
CI框架整合smarty步骤详解
2023-11-14 11:18:11
原生JS实现Ajax通过POST方式与PHP进行交互的方法示例
2023-09-07 22:44:41
![](https://img.aspxhome.com/file/2023/0/555401_0s.png)
JavaScript变量类型以及变量作用域详解
2023-08-12 08:50:17
![](https://img.aspxhome.com/file/2023/5/56005_0s.png)
用python打开摄像头并把图像传回qq邮箱(Pyinstaller打包)
2021-04-26 22:34:55
![](https://img.aspxhome.com/file/2023/7/71567_0s.jpg)
CSS解决未知高度的垂直水平居中自适应问题
2009-03-17 17:06:00
python制作小说爬虫实录
2023-09-30 17:39:25
请问[\\u4E00-\\u9FA5]是什么正则表达式码
2009-07-10 13:10:00
asp代码WinHttp.WinHttpRequest.5.1使用例子
2010-03-11 21:28:00
无法通过Google网站管理工具验证的部分情况解决办法
2009-07-28 12:56:00
正则 global 属性介绍
2008-03-18 20:50:00
理解 SQL Server 中系统表Sysobjects
2009-01-20 15:13:00
Tensorflow中使用tfrecord方式读取数据的方法
2023-12-05 01:01:18
![](https://img.aspxhome.com/file/2023/1/77001_0s.png)
Python参数传递机制传值和传引用原理详解
2023-07-28 11:16:02
![](https://img.aspxhome.com/file/2023/6/61466_0s.png)
Python高级编程之继承问题详解(super与mro)
2023-08-08 18:58:47
![](https://img.aspxhome.com/file/2023/1/62281_0s.png)
mysql5在rhel5下乱码问题及解决方法
2010-12-03 16:26:00
![](https://img.aspxhome.com/file/UploadPic/201012/3/2010123165047481s.png)
Django中ORM找出内容不为空的数据实例
2022-03-24 04:47:56