有没有一种方法可以同时使用@njit和np.object类型的2d数组以提高效率?
a和“ nan”是两个2d可变子数组大小数组(每个子数组递增(对于“ a”)和递减(对于“ nan”)大小)。 ->由于它们的形状可变,因此它们的类型为np.object。
它们合并在一起生成一个二维数组,其中每个子数组都具有相同的形状。
@nb.jit(parallel=True, forceobj=True)
def numba_list_comprehension_concatenate(a, b, LEN):
for i in prange(LEN):
a[i] = np.concatenate((a[i], b[i]))
return a
a = numba_list_comprehension_concatenate(np.asarray(a,dtype=np.object),
np.asarray(nans,dtype=np.object), np.int64(len(a)))
如何使njit可用?
编辑:
line 235, in backward_sequentialize
a2 = numba_list_comprehension_concatenate(np.asarray(a2,dtype=np.object), np.asarray(nans,dtype=np.object), np.int64(len(a2)))#np.asarray([np.concatenate((x,y)) for x,y in zip(a,nans)])
File "c:\users\...\appdata\local\programs\python\python38\lib\site-packages\numba\core\dispatcher.py", line 415, in _compile_for_args
error_rewrite(e, 'typing')
File "c:\users\...\appdata\local\programs\python\python38\lib\site-packages\numba\core\dispatcher.py", line 358, in error_rewrite
reraise(type(e), e, None)
File "c:\users\...\appdata\local\programs\python\python38\lib\site-packages\numba\core\utils.py", line 80, in reraise
raise value.with_traceback(tb)
TypingError: non-precise type array(pyobject, 1d, C)
During: typing of argument at D:/.....py (229)
Figures now render in the Plots pane by default. To make them also appear inline in the Console, uncheck "Mute Inline Plotting" under the Plots pane options menu.