有没有一种方法可以同时使用@njit和np.object类型的2d数组来提高效率?

时间:2020-09-27 21:50:00

标签: python arrays performance numpy numba

有没有一种方法可以同时使用@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. 

0 个答案:

没有答案