2

我正在使用 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

提前致谢!

缺口

4

1 回答 1

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.

于 2013-10-22T19:58:46.340 回答