python - 如何正确指定 numba JIT 函数的签名?
问题描述
我创建了一个@jit
编译函数,它应该比普通循环更快。但是它不是,因为及时编译需要几分钟。我究竟做错了什么?
为这个函数指定签名的最有效方法是什么?
''' reproducable sample data '''
import numpy as np, time, numba as nb
LEN, Amount_Of_Elements = 10000,4000
temp = np.random.randint(Amount_Of_Elements*0.7,high=Amount_Of_Elements, size=LEN)
RatiosUp = [np.random.uniform(size=rand) for rand in temp]
RatiosDown = [np.random.uniform(size=rand) for rand in temp]
UpPointsSlices = [np.random.uniform(size=rand) for rand in temp]
DownPointsSlices = [np.random.uniform(size=rand) for rand in temp]
''' function '''
@nb.jit
def filter(a,b):
return a > b
@nb.jit
def func(RatiosUp, RatiosDown, UpPointsSlices, DownPointsSlices, result):
for i in range(len(RatiosUp)):
for j in range(RatiosUp[i].size):
if filter3(RatiosUp[i][j],RatiosDown[i][j]):
result[i][j] = 1
elif filter3(RatiosDown[i][j],RatiosUp[i][j]):
result[i][j] = 0
elif filter3(UpPointsSlices[i][j],DownPointsSlices[i][j]):
result[i][j] = 0
else:
result[i][j] = 1
解决方案
推荐阅读
- php - 如何在服务器端预渲染 Nuxt.js API 路由
- python-3.x - Tkinter 消息框,列出所有空变量
- java - Java 和分数
- java - 使用 Vert.x vertx-pg-client 从池中获取 PgConnection
- epson - ESC-POS-USB-NET 无法访问打印机异常
- go - 如何提供大量页面
- python - 在保留结构的同时划分 2 个多索引数据帧
- mern - 为什么 Axios.get 给我一个 [object Object]
- c++ - 如何检测鼠标钩子程序中的拖动
- c# - 从另一个 C# 可执行文件中在 linux 中运行 ac# 可执行文件时“没有这样的文件或目录”