我是 numba 的用户,谁能告诉我为什么 numpy 数组的切片这么慢,这是一个例子:
def pairwise_python2(X):
n_samples = X.shape[0]
result = np.zeros((n_samples, n_samples), dtype=X.dtype)
for i in xrange(X.shape[0]):
for j in xrange(X.shape[0]):
result[i, j] = np.sqrt(np.sum((X[i, :] - X[j, :]) ** 2))
return result
%timeit pairwise_python2(X)
1 个循环,最好的 3 个:每个循环 18.2 秒
from numba import double
from numba.decorators import jit, autojit
pairwise_numba = autojit(pairwise_python)
%timeit pairwise_numba(X)
1 个循环,最好的 3 个:每个循环 13.9 秒
jit和cpython版本似乎没有区别,我错了吗?