У меня есть простая функция, которая не может быть скомпилирована с помощью декоратора Numba @njit:
@njit(fastmath=True, nogil=True)
def insert_into_array(array, pos, array_to_insert):
start = array[0:pos]
end = array[pos:len(array)]
inserted = np.concatenate((start, array_to_insert))
return np.concatenate(inserted, end)
Ошибка с этим сообщением:
Failed in nopython mode pipeline (step: nopython frontend)
Invalid use of Function(<function concatenate at 0x000001E88B04E8B0>) with argument(s) of type(s): (array(uint8, 1d, C), array(uint8, 1d, C))
* parameterized
In definition 0:
All templates rejected with literals.
In definition 1:
All templates rejected without literals.
This error is usually caused by passing an argument of a type that is unsupported by the named function.
[1] During: resolving callee type: Function(<function concatenate at 0x000001E88B04E8B0>)
Обратите внимание, что не работают следующие типы: (array(uint8, 1d, C), array(uint8, 1d, C))
- в основном пытается объединить два простых массива 1d.
У меня много проблем с пониманием того, что мне делать, чтобы исправить это, поскольку функция NumPy concatenate
указана как поддерживаемая функция от Numba.
Я использую Python 3.7 и Numba 0.50
Есть идеи, что я делаю не так?
Спасибо!