在课堂上使用numba?

时间:2015-01-31 20:15:39

标签: python-3.x numba

我可以在0.6 numba文档中找到有关如何使用numba on classes的一些信息:

from numba import jit, void, int_, double

# All methods must be given signatures

@jit
class Shrubbery(object):
    @void(int_, int_)
    def __init__(self, w, h):
        # All instance attributes must be defined in the initializer
        self.width = w
        self.height = h

        # Types can be explicitly specified through casts
        self.some_attr = double(1.0)

    @int_()
    def area(self):
        return self.width * self.height

    @void()
    def describe(self):
        print("This shrubbery is ", self.width,
              "by", self.height, "cubits.")

但我没有在0.16 documentation中找到。是否总是可以在课堂上使用numba?

2 个答案:

答案 0 :(得分:5)

从版本0.23开始,有numba.jitclass方法。我可以说以下版本在0.26版本中工作

@numba.jitclass([('width', numba.float64), ('height', numba.float64)])
class Shrubbery(object):
    def __init__(self, w, h):
        self.width = w
        self.height = h

    def area(self):
        return self.width * self.height

shrubbery = Shrubbery(10, 20)
print(shrubbery.area())

documentation表示只允许使用方法和属性,因此很遗憾,包括describe函数在内不会起作用。

答案 1 :(得分:3)

我听说 numba班级支持的最后一件事就是他们temporarily removed it since 0.12