Я экспериментировал с поведением Numba
против Numpy
для индексации массива, и я столкнулся с чем-то, что я не совсем понимаю; поэтому я надеялся, что кто-то может указать мне правильное направление, что, вероятно, является очень простым вопросом. Ниже приведены две функции, каждая из которых создает пустой массив с помощью команды np.arange. Затем я «добавляю» (экспериментируя с различными методами, чтобы увидеть, как и Numba
, и Numpy
выполняют / разбивают) к массиву, используя индекс 0, example[0] = 1
.
Функция Numba
с jit
работает без ошибок, но в примере Numpy
выдает ошибку:
IndexError: index 0 is out of bounds for axis 0 with size 0
Ошибка Numpy
имеет смысл, но я не уверен, почему Numba
с включенным jit
позволяет работать без ошибок.
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())