我正在使用稳定版的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.
Run Code Online (Sandbox Code Playgroud)
作为一个测试案例,加速是巨大的.但是如果我需要加速一个类中的函数,我不知道如何继续.
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
Run Code Online (Sandbox Code Playgroud)
我用什么numba类型的self对象?我需要在类中包含此函数,因为它需要访问成员变量.
我正在尝试使用numpy矩阵列表,并遇到一个恼人的问题.
假设我从十个2x2零矩阵的列表开始
para=[numpy.matrix(numpy.zeros((2,2)))]*(10)
Run Code Online (Sandbox Code Playgroud)
我访问这样的单个矩阵
para[0]
para[1]
Run Code Online (Sandbox Code Playgroud)
等等.到现在为止还挺好.
现在,我想仅修改第二个矩阵的第一行,保持所有其他矩阵不变.所以我这样做
para[1][0]=numpy.matrix([[1,1]])
Run Code Online (Sandbox Code Playgroud)
第一个索引指向列表中的第二个矩阵,第二个索引指向该矩阵中的第一行,将其替换为[1,1].
但奇怪的是,这个命令将列表中所有十个矩阵的第一行改为[1,1]而不是像我想要的那样只改变第二行.是什么赋予了?