You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Numba jitclass中创建空的float64类型化列表?

在Numba JitClass中创建空的float64类型列表

问题根源

空列表[]无法被Numba自动推断出具体类型,而jitclass要求成员变量类型必须与装饰器中声明的numba.types.ListType(numba.types.float64)严格匹配,因此直接赋值空列表会触发TypingError。

解决方案

使用Numba提供的numba.typed.List显式创建指定类型的空列表,以下是两种可行方式:

方式一:使用empty_list直接生成指定类型空列表(推荐)

通过List.empty_list()方法可以直接创建目标类型的空列表,无需额外操作:

import numba 
from numba.experimental import jitclass
from numba.typed import List

@jitclass([('l', numba.types.ListType(numba.types.float64))])
class test: 
    def __init__(self):
        self.l = List.empty_list(numba.types.float64)

test()

方式二:先初始化再调整(备选)

如果需要先添加元素再清空,也可以用这种方式:

import numba 
from numba.experimental import jitclass
from numba.typed import List

@jitclass([('l', numba.types.ListType(numba.types.float64))])
class test: 
    def __init__(self):
        self.l = List()
        self.l.append(0.0)  # 添加一个float64类型元素以确定列表类型
        self.l.clear()       # 清空列表得到空的类型化列表

test()

关键说明

  • numba.typed.List是Numba专门用于创建类型化容器的工具,必须显式导入后使用。
  • 两种方式都能确保列表类型与jitclass中声明的float64列表类型完全匹配,避免类型推断错误。

内容的提问来源于stack exchange,提问作者user19976975

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 01:25:29