Почему jit 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, потому что в моей реальной ситуации мне нужно часто выполнять сложение массива, умножение на скаляры и заполнение массива другими массивами. и я понимаю, что в объектном режиме я не смогу выполнять джиттинг цикла и, следовательно, я не увижу реального повышения производительности при выполнении.