【发布时间】:2021-11-14 08:23:59
【问题描述】:
我看到 Numba 不支持字典列表...因此,我决定改用 2D Numpy 数组。这很可悲:(
我遇到的第二个问题是我想按需创建这个数组。这是一个例子:
@nb.njit(parallel=True)
def blah(cond=True):
ary = None
if cond : ary = np.zeros((10000,2))
for i in range(5):
if cond: ary[i] = np.array([i,i])
return 555, ary
问题是ary不能是None,所以即使不使用也要分配数组。
有没有办法在不分配 ary 的情况下定义它,这样 Numba 就不会抱怨了?
“并行”似乎导致了问题??
这也很有趣,它只更新第一行(i 递增):
ary[i,:] = np.array([a,b])
但是这行得通
ary[i] = np.array([a,b])
【问题讨论】:
-
我无法在我的机器上重现该问题。 Numba 0.53 与
None值一起工作得非常好(代码只是不构建,因为abc和cond没有定义,但除此之外它很好)。您是否测试了最新版本? -
0.48 ..but 0.53 too : Dimension mismatch
-
如果您遇到问题,这不是minimal reproducible example
-
更新了Q...并行
标签: python numpy allocation numba