python ndarray更新正在退出函数



函数定义中有以下循环:

mu=np.zeros((T,p))
mu_post=np.zeros((T,p))
for t in arange(T):
      mu_post[t]= np.dot(a,b)
      mu[t+1]= mu_post[t]
      some other processing

在接近周期结束(t=t-1)后,代码退出该函数,而不执行。然而,在尝试调试时,如果我手动(在pycharm调试控制台中)尝试执行mu[t+1]=mu_post[t],则效果良好。这有什么原因吗。顺便说一句,我试着做mu[t+1][:]=mu_post[t],但它也有同样的问题。

代码退出此函数而不执行。

这是模糊的,但我怀疑我可以用这个重现错误:

In [47]: mu=np.zeros((5,3))
In [48]: mu1=np.zeros((5,3))
In [49]: for t in range(5):
   ....:     mu1[t,:]=[1,2,3]
   ....:     mu[t+1,:] = mu1[t]
----> 3     mu[t+1,:] = mu1[t]
IndexError: index 5 is out of bounds for axis 0 with size 5

在最后一次迭代中,t==4,所以t+1就是5。这对于mu的第一维度来说是太大的索引。

为什么要用t+1索引mu?如果这是有道理的,为什么mumu1的大小相同?

最新更新