【发布时间】:2017-06-05 18:20:18
【问题描述】:
我正在使用 Numba 0.30.1 的稳定版本。
我可以这样做:
import numba as nb
@nb.jit("void(f8[:])",nopython=True)
def complicated(x):
for a in x:
b = a**2.+a**3.
作为一个测试用例,加速是巨大的。但是如果我需要加速类中的函数,我不知道如何进行。
import numba as nb
def myClass(object):
def __init__(self):
self.k = 1
#@nb.jit(???,nopython=True)
def complicated(self,x):
for a in x:
b = a**2.+a**3.+self.k
self 对象使用什么 numba 类型?我需要在一个类中拥有这个函数,因为它需要访问一个成员变量。
【问题讨论】:
-
jitclass怎么样?鉴于self的定义是object,我认为不可能避免“object-fallback”。 -
如果您在下一个循环中立即覆盖它,
b = a**2.+a**3.+self.k将实现什么? -
self.k只是示意性地表明我需要调用成员变量,不能只在类外拥有函数