Skip to main content
 首页 » 编程设计

python之使用 numba 在 int_s 数组中查找 numpy.int_

2025年05月04日9yjmyzz

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