如何复制 numba jitclass
实例(其变量是 numpy
标量和数组)?
除了创建一个新实例并在循环中复制所有变量之外,还有更好的方法吗?我还尝试了 copy.copy
和 copy.deepcopy
,但都失败了 TypeError: can't pickle MyJitClassName objects
最佳答案
我认为原则上这是 numba
可以支持的东西(考虑打开 issue ),但现在我认为唯一的选择是定义您自己的。
请注意,jitclasses 保存对数组的引用,因此如果您想复制基础数据,则需要 array.copy()
。
from numba import jitclass, float64
spec = [
('scalar', float64),
('array', float64[:]),
]
@jitclass(spec)
class MyJitClass:
def __init__(self, scalar, array):
self.scalar = scalar
self.array = array
def copy(self):
return MyJitClass(self.scalar, self.array.copy())
关于python - Numba - jitclass 实例的副本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47507851/