我已经实现了一个Python脚本,需要使用4个嵌套循环。我意识到这使得解决问题的速度非常慢。我还注意到,类似的循环在Matlab中比在Python中快得多。你知道吗
1)为什么Matlab中的相同循环比Python中的快?你知道吗
2)如何改进Python代码(例如矢量化)?我试过itertools的函数(组合、乘积),但它们并不能加快计算速度。你知道吗
我创建了一类点-每个点都有坐标和速度,我计算它们之间的距离和其他量
N = 1000
for i in range(0,N-1):
for i2 in range(0,10):
if p[i].id[i2] == 1: # check if point is active
ri = p[i].r[i2]
vi = p[i].v
else:
pass
for j in range(i+1,N):
for j2 in range(0,10):
if p[j].id[j2] == 1:
rj = p[j].r[j2]
vj = p[j].v
else:
pass
# and the rest of my function
有人能帮我吗?你知道吗
非常感谢!你知道吗
关于Python与Matlab的性能,我建议 http://wiki.scipy.org/PerformancePython。显然,速度与需要解决的问题有关,但我认为对于纯粹的数学/物理计算和仿真,Matlab将占上风(当然,是为这些目的而设计的)。你知道吗
对于您的代码,Python确实提供了各种工具来提高性能,例如使用生成器,或者对于数学应用程序,使用Numpy的(C中的backended)ndarray。如果您对高性能python是认真的,您可能还想看看PyPy或Cython。你知道吗
我还记得在某个地方读到(如果找到链接就会更新)仅仅通过使用函数调用和python类,代码执行速度就大大加快,因为字节码可以更有效地解释。你知道吗
我还将向您指出这个回复的方向https://stackoverflow.com/a/16752469/9889462,作为使用生成器加速代码的启动程序。希望这有帮助
相关问题 更多 >
编程相关推荐