[英]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.