我有以下的for循环来创建一个值列表:
为了加快列表的创建速度,我使用向量化方法将其创建为Numpy数组。这种方法比等效的for循环更快,特别是对于增加范围的大值p。
为了进一步加快创建数组的速度,我考虑尝试使用Numba软件包。以下是我的当前尝试。
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的建议?
@autojit
将在处理for
循环时产生巨大的差异。 - Saullo G. P. Castrofor
循环封装到一个带有autojit的函数中?你能提交一个使用这种方法的答案并比较时间吗? - wigging