我有以下 for 循环来构造值列表:
p = 7
A = []
for i in range(0, 10**p):
A.append(i**3 + i**2)
为了加快列表的创建,我使用矢量化方法将其创建为 Numpy 数组。这种方法比等效的 for 循环快得多,特别是对于p
增加范围的大值。
import numpy as np
from numba import autojit
p = 7
m = np.arange(0, 10**p)
D = np.empty(len(m))
D = m**3 + m**2
为了进一步加快数组的创建速度,我想我会尝试使用 Numba 包。以下是我目前的尝试。
@autojit
def func(a):
a = np.asarray(a)
n = np.arange(0, 10**p)
a = np.append(a, n**3 + n**2)
return a
e = []
E = func(e)
不幸的是,我没有看到使用 Numba 带来的任何性能提升,它比仅使用 Numpy 的矢量化方法慢近 3 倍。
关于如何使用 Numba 的任何建议?