3
爲什麼Numba的jit不能編譯一個簡單的Numpy數組操作?使用numba工作和操作numpy數組
下面是一個最小的非工作的例子,再現Numba未能編譯
import numpy as np
from numba import jit
rows = 10
columns = 999999
A = np.empty((rows, columns))
b = np.linspace(0, 1, num=rows)
@jit(nopython=True)
def replicate(A, b):
for i in range(A.shape[1]):
A[:, i] = b
return A #optional
replicate(a, b)
,出現以下錯誤:
TypingError: Failed at nopython (nopython frontend)
Cannot resolve setitem: array(float64, 1d, C, nonconst)[(slice3_type, int64)] = array(float64, 1d, C, nonconst)
File "<ipython-input-32-db24fbe2922f>", line 12
難道我做錯了什麼?另外,我需要nopython模式,因爲在我的真實情況下,我需要執行數組加法,乘以標量和頻繁使用其他數組的數組。我的理解是,在對象模式下,我將無法進行循環連接,因此在執行過程中我不會看到任何真正的性能提升。