有没有办法加速这个循环?

2024-10-01 07:47:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要以更有效的方式编写此块:

    for aci in teta_degree:                     
        for t_degeri in t:
            for x_degeri in x_values:
                resulted_y_values = np.tan(aci) * x_degeri + t_degeri / np.cos(aci)
                result.append([aci,t_degeri,x_degeri,resulted_y_values])

通过使用itertools,我可以替换for循环,但找不到将结果的\u y\u值放入结果中相关位置的方法:

result_2 =  [i for i in itertools.product(teta_degree,t,x_values)]

Tags: infornp方式cosresultvaluesitertools
1条回答
网友
1楼 · 发布于 2024-10-01 07:47:05

多亏了@PaulRooney,即使是他(也是我)也没想到,他的解决方案,即将np.tannp.cos操作带到外循环,带来了非常好的性能:

yeni_süre = time.time()
for aci in teta_degree:  
        tan = np.tan(aci)
        cos = np.cos(aci)
        for t_degeri in t:
            for x_degeri in x_values:
                resulted_y_values = tan * x_degeri + t_degeri / cos
                result.append([aci,t_degeri,x_degeri,resulted_y_values])
print('New: ',time.time()-yeni_süre,'sec')

1.061 sec

而旧的:

8.601 sec

相关问题 更多 >