gpt4 book ai didi

python - 优化嵌套 for 循环

转载 作者:太空宇宙 更新时间:2023-11-03 14:12:05 24 4
gpt4 key购买 nike

我尽量避免使用 for 循环来运行我的计算。但我不知道该怎么做。我有一个形状为 (40,100) 的矩阵 w。每条线在 t 时间内保持波浪的位置。例如,第一行 w[0] 是初始条件(也是 w[1],原因我将展示)。

要计算我使用的下一个线条元素,对于形状范围上的每个 tx:

w[t+1,x] = a * w[t,x] + b * ( w[t,x-1] + w[t,x+1] ) - w[t-1,x]

其中ab是一些基于方程求解的常量(真的无所谓),a = 2(1-r)b=rr=(c*(dt/dx))**2。其中c是波速,dtdxxt上的增量有关 方向。

有什么办法可以避免这样的for循环:

for t in range(1,nt-1):
for x in range(1,nx-1):
w[t+1,x] = a * w[t,x] + b * ( w[t,x-1] + w[t,x+1] ) - w[t-1,x]

ntnxw 矩阵的形状。

最佳答案

我假设你事先设置了 w[:,0]w[:-1] (一些常量?)因为我没有看到它在循环。如果是这样,您可以消除对这部分代码进行矢量化的 for x 循环:

for t in range(1,nt-1):
w[t+1,1:-1] = a*w[t,1:-1] + b*(w[t,:-2] + w[t,2:]) - w[t-1,1:-1]

关于python - 优化嵌套 for 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36670449/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com