这是我的函数,我知道 for 循环很慢在 numpy 中必须有更快/更好的方法来执行此操作
import numpy as np
def heat(u):
my_u = np.empty_like(u)
np.copyto(my_u, u)
for row in range(1,u.shape[0]-1):
for col in range(1,u.shape[1]-1):
my_u[row, col] = (u[row-1][col] + u[row+1][col]
+ u[row][col-1] + u[row][col+1])/4
return my_u
print(heat(np.array([[100, 100, 100, 100, 100],
[100, 0, 0, 0, 100],
[100, 0, 0, 0, 100],
[100, 0, 0, 0, 100],
[100, 100, 100, 100, 100]])))