使用numba在int_s数组中找到numpy.int_

时间:2013-10-22 19:37:28

标签: python numpy numba

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

提前致谢!

尼克

1 个答案:

答案 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