python的for语句怎么用_python – 如何在Numpy中向量化这个double for循环?

我有一些运行缓慢的

Python / Numpy代码,我认为这是因为使用了双循环.这是代码.

def heat(D,u0,q,tdim):

xdim = np.size(u0)

Z = np.zeros([xdim,tdim])

Z[:,0]=u0;

for i in range(1,tdim):

for j in range (1,xdim-1):

Z[j,i]=Z[j,i-1]+D*q*(Z[j-1,i-1]-2*Z[j,i-1]+Z[j+1,i-1])

return Z

我试图删除双循环和矢量化Z.这是我的尝试.

def heat(D,u0,q,tdim):

xdim = np.size(u0)

Z = np.zeros([xdim,tdim])

Z[:,0]=u0;

Z[1:,1:-1]=Z[1:-1,:-1]+D*q*(Z[:-2,:-1]-2*Z[1:-1,:-1]+Z[2:,:-1])

return Z

这不起作用 – 我收到以下错误:

operands could not be broadcast together with shapes (24,73) (23,74)

所以在试图对Z进行矢量化时,我搞砸了.你能帮我看看我的错误吗?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值