python加速器numba使用详解
作者:_刘文凯_ 发布时间:2022-02-27 15:24:22
标签:python,加速器,numba
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


猜你喜欢
- 方法一:<code class="language-python">""" 根
- 减少HTTP请求,是可以提高网站速度的,把所有的背景图像都放到一个图片文件中,然后通过CSS的background-image和backgr
- python的matplotlib包支持我们画图,有点非常多,现学习如下。首先要导入包,在以后的示例中默认已经导入这两个包import ma
- 方法1: 用SET PASSWORD命令MySQL -u rootmysql> SET PASSWORD FOR 'root&
- 这篇文章主要介绍了Python如何在DataFrame增加数值,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,
- 用Python编写关于计算图形面积的代码实现,供大家参考,具体内容如下#寒假打卡28天第7天import mathclass Round()
- re模块是python独有的匹配字符串的模块,该模块中提供的很多功能是基于正则表达式实现的,而正则表达式是对字符串进行模糊匹配,提取自己需要
- 在项目中,我们需要运用到很多来自后端返回的数据。有时是上百条,有时甚至上千条。如果加上后端的多表查询或者数据量过大,这就导致在前
- 实例如下所示:>>> import pandas as pd>>> import numpy as np
- Python 3.10.0a2 版本已经于 2020-11-04 发布,因此我们可以窥见 Python 3.10 的一些新特性。这些新特性很
- 一、Tag(标签)对象1.Tag对象与XML或HTML原生文档中的tag相同。from bs4 import BeautifulSoupso
- 本文实例讲述了Python编程中event对象的用法。分享给大家供大家参考,具体如下:Python提供了Event对象用于线程间通信,它是由
- 一、字典的基本操作1.定义字典 字典也是一个列表型的数据结构,字典的数据是用“{ }&rd
- import threadingfrom time import sleepdef test_func(id): &n
- Plotly 是目前已知的Python最强绘图库,它比上次我们讲的Echarts还强大许多许多,它的绘制通过生成一个web页面完成,并且支持
- 刚开始学习tensorflow,还不太会用,开个博记录,今天遇到一个问题是用tf.layers.dense创建的全连接层,如何查看权重?知道
- 我们在开发过程中,经常需要针对一列,基于条件逻辑来返回一个值,那么,这时候就需要使用到CASE表达式了。例如,以下对Products表的查询
- Oblog4.6 ACCESS版转换为UCenterHome1.5的全过程1、 说明:
- 前言时隔108天,何同学在B站发布了最新的视频,《【何同学】我用108天开了个灯…》。那么就让我们用爬虫,爬取视频的弹
- 前文: 之前一直用Elemet-UI的upload组件,但是ui给出的样式Element-UI满足不了,所以决定自己写一个玩玩总体分三步:1