繁体   English   中英

索引空数组,Numba vs. Numpy

[英]Indexing empty array, Numba vs. Numpy

我正在试验Numba vs Numpy对阵列索引的行为,我遇到了一些我不太了解的东西; 所以我希望有人可以指出我正确的方向,这可能是一个非常简单的问题。 下面是两个函数,它们都使用np.arange命令创建一个空数组。 然后,我使用索引0( example[0] = 1 )“追加”(尝试各种方法来查看NumbaNumpy如何执行/中断)到数组。

使用jit运行的Numba函数没有错误,但是Numpy示例给出了错误:

IndexError: index 0 is out of bounds for axis 0 with size 0

Numpy错误是有道理的,但我不确定为什么Numbajit允许操作没有错误。

import numba as nb
import numpy as np

@nb.jit()
def funcnumba():
    '''
    Add item to position 0 using Numba
    '''
    example = np.arange(0)
    example[0] = 1
    return example

def funcnumpy():
    '''
    Add item to position 0 using Numpy. This produces an error which makes sense
    '''
    example = np.arange(0)
    example[0] = 1
    return example

print(funcnumba())

print(funcnumpy())

请参阅有关数组Numba文档

目前没有边界检查数组索引和切片(...)

这意味着在这种情况下你将写出数组的边界。 因为它只是一个元素,你可能会幸运并逃脱它,但你也可以崩溃你的程序,或者更糟糕的是,默默地覆盖其他一些价值。 有关它的讨论,请参阅问题#730

暂无
暂无

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

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