Мне нужно скомпилировать небольшой фрагмент кода Python с помощью Numba. К сожалению, он включает эту строку:
result= np.insert(result, pos_to_modify, add_data, 0)
, где он вставляет add_data
в массив результатов в позиции pos_to_modify
. Однако это не поддерживается Numba, поэтому компиляция не выполняется.
Я просматривал поддерживаемые методы, которые могу использовать (https://numba.pydata.org/numba-doc/dev/reference/numpysupported.html), но не могу найти эквивалентный способ сделать это. Я новичок в NumPy.
Есть ли быстрый способ выполнить sh это, используя только методы на этой странице?
Я придумал это:
def insert_into_array(array, pos, array_to_insert):
if pos == 0:
return np.concatenate((array_to_insert, array))
elif pos == len(array):
return np.concatenate((array, array_to_insert))
else:
start = array[0:pos]
end = array[pos:len(array)]
return np.concatenate(np.concatenate((start, array_to_insert)), end)
, но поскольку это должно работать на графическом процессоре, я бы хотел избежать этого оператора if / else.