我有一些数据(股票数据)需要进行一些计算。我使用了numpy数组来完成这个操作。Numpy比Python内置函数要快得多。但是,我的代码执行时间比预期的要长。我的代码如下所示,并且我已经使用了ipython %timeit函数来测试它。结果如下:总执行时间为5.44毫秒,第二个‘for’循环花费了最多的时间,3.88毫秒,原因是该循环中的‘np.mean’函数。因此,寻找替代‘np.mean’函数以及其他加速执行时间的建议将会很有帮助。
代码
data = my_class.Project.all_data["AAP_data"]
data = np.array(data[["High", "Low", "Close"]])
true_range = np.empty((data.shape[0]-1, 1))
for i in range(1, true_range.shape[0]+1):
true_range[i-1] = max((data[i, 0] - data[i, 1]), (abs(data[i, 0] - data[i-1, 2])),
(abs(data[i, 1] - data[i-1, 2])))
average_true_range = np.empty((true_range.shape[0]-13, 1))
for i in range(13, average_true_range.shape[0]+13):
lastn_tr = true_range[(i-13):(i+1)]
average_true_range[i-13] = np.mean(lastn_tr)