Python 多个for循环怎么提高运行速度

list_M是一个16个矩32维阵的字典,在做以下循环时,运行太慢,出不了结果,怎么才能加快运行速度?
for R1 in range(0, 16):
for R2 in range(0, 16):
for R3 in range(0, 16):
for R4 in range(0, 16):
for R5 in range(0, 16):
for R6 in range(0, 16):
for R7 in range(0, 16):
for R8 in range(0, 16):
M0 = np.bmat("O,I;I,O")
M1 = np.mat(list_M[R1])
M2 = np.mat(list_M[R2])
M3 = np.mat(list_M[R3])
M4 = np.mat(list_M[R4])
M5 = np.mat(list_M[R5])
M6 = np.mat(list_M[R6])
M7 = np.mat(list_M[R7])
M8 = np.mat(list_M[R8])
new_M = np.mod(M0*M8*M7*M6*M5*M4*M3*M2*M1, 2)



5个回答

你的程序需要循环16的8次方,也就是2的32次方,也就是42亿次,当然很慢,最好的办法是优化你的算法,减少不需要的循环。
如果你的算法不能调整,那么尝试拆分成多个线程/进程,利用多cpu核心并行加速,用C/MPI等库,而不是python,可以更快。

Python 不是提供很多矩阵的运算的库吗?

可以转换成矩阵运算,那个会快很多

涉及到数据分析建议使用panda的包

数组numpy和数据框pandas执行的是C语言的速度,比python快多了,建议你变成numpy形式去处理,速度提升至少百倍。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问