我需要用Numba编译一小段Python代码。不幸的是,它包含以下行:
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的新手。
是否有一种仅使用该页面中的方法来完成此操作的快速方法?
我想到了这个
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)
但是由于这是要在GPU上运行,因此我想避免这种if / else语句。