减少嵌套循环中公式计算时间的最佳方法?

问题描述 投票:0回答:1

您能告诉我减少嵌套循环中公式计算时间的最佳方法是什么吗?我有这样的代码:

for k in range(0, 130):
            for i in range(0, 1600):
                array2[i,k] = 0
                for j in range(0, 1600):
                    array2[i,k] = array2[i,k] + constant_value * (array1[j,k] * function1(i - j))

Array1 和 array2 包含双精度数。该代码块将在 15-20 分钟内执行。问题在于该块嵌套在另一个具有 100 到 400 次迭代的循环中,因此有时需要超过 24 小时才能计算。有没有办法加快这段代码的速度?

python for-loop nested nested-loops
1个回答
0
投票

convolve()
来自 numpy

import numpy as np

    for k in range(130):
    array2[:, k] = np.convolve(array1[:, k], np.ones(1600), mode='same') * constant_value
© www.soinside.com 2019 - 2024. All rights reserved.