python - Numba - jitclass 实例的副本

标签 python copy jit deep-copy numba

如何复制 numba jitclass 实例(其变量是 numpy 标量和数组)?

除了创建一个新实例并在循环中复制所有变量之外,还有更好的方法吗?我还尝试了 copy.copycopy.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/

相关文章:

python - 在 Python 中快速执行动态代码的可能性

python - 在 Pandas 中按项目分组并每小时计算项目数

python - 平台/版本无关的方法,仅使用标准库查找我的 Linux 机器中所有接口(interface)的 IP 地址

python - DatetimeIndex 仅用于 pandas 中的每日数据

docker - 将ARG中的多个文件指定为Dockerfile中的COPY

assemblies - CLR 4.0 内联策略? (可能是 MethodImplOptions.NoInlining 的错误)

python - 由于 pip 安装错误,无法在 python 2.7.5 中创建 virtualenv 实例

java - 按值复制 Java 列表

powershell - 如果不存在,如何将更新的文件复制到新文件夹并创建目录作为源?

python - numba jit 是否有可能减慢我的 gcd 执行速度?