繁体   English   中英

在numba中创建空列表的列表

[英]Creating a list of empty lists in numba

为什么foo功能低于工作而bar不用? 我在这里错过了什么?

@numba.njit                                           
def foo(x):                                           
    return [[i for i in range(0)] for _ in range(x)]

@numba.njit                                           
def bar(x):                                           
    return [[] for _ in range(x)]

bar创建一个空列表。 numba需要推断出在nopython模式下用于编译代码的所有变量的类型(而njit只能编译为nopython模式)。 但是无法输入空列表,因为numba将无法推断列表中存储的项的类型(因为没有)。 只需尝试以下操作即可获得更具“描述性”的错误消息:

numba.typeof([])

如果使用对象模式(例如使用jit decorator而不指定nopython=True ),则可以使用无类型的python对象,但代价是执行性能较慢。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM