我正在使用 numba (0.10.2-5-gda3e2bb-dirty) 来加速我的代码。现在我正在尝试以下操作:
from numba import void, int_, double, jit
import numpy as np
@jit
class bla(object)
@void
def my_fun
k = np.int_(1)
f = np.int_(np.array([1, 2 , 3, 4, 5]))
if k in f:
do something
但是 numba 似乎在 in 命令中窒息。如果我输入类似的内容
if k == 1:
一切都很好。但是使用 in 命令 numba 不会编译。有什么想法吗?
顺便说一句:我正在运行 python 2.7 和
numpy.version
返回
numpy-1.7.1-py2.7-linux-i686.egg
提前致谢!
尼克
请您参考如下方法:
您的代码语法存在许多基本问题(缩进、缺少括号等),但如果我按如下方式重写它,我会收到一条错误消息,指出 in 类型比较是尚未实现:
NumbaError: (see below)
--------------------- Numba Encountered Errors or Warnings ---------------------
Error <class '_ast.In'> comparisons not yet implemented
--------------------------------------------------------------------------------
import numpy as np
from numba import void, int_, double, jit
@jit
class bla(object):
@void()
def __init__(self):
self.x = 1
@void()
def my_fun(self):
self.x = 1
k = np.int_(1)
f = np.int_(np.array([1, 2 , 3, 4, 5]))
if k in f:
print 'aaa'
我不得不加入 self.x 行,因为 numba 似乎无法使用未使用的变量进行编译,包括 self。
