我正在使用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似乎在命令中窒息。如果我输入类似
的内容if k == 1:
一切都很好。但是使用in命令numba将无法编译。有什么想法吗?
顺便说一句:我正在运行python 2.7和
numpy.version
返回
numpy-1.7.1-py2.7-linux-i686.egg
提前致谢!
尼克
答案 0 :(得分:1)
您的代码语法存在许多基本问题(缩进,缺少括号等),但如果我按如下方式重写它,则会出现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
。