在python中更新特定的行

时间:2014-11-20 04:32:50

标签: python numpy

我有一个函数,我在每次迭代中更新numpy数组,但原始数组在第一次迭代后没有更新。

W = np.empty((3,3))
W.fill(1.0/3)

H = np.empty((2,3))
H.fill(1.0/3)

# file.txt contains 100 rows of x,y,z (with different values)

def UpdateHz(a,b,c) :
     return np.subtract(H[b,:],H[c,:])

def UpdateHy(a,b,c) :

     return np.subtract(W[b,:],H[c,:])
def UpdateHz(a,b,c) :
     return np.subtract(W[a,:],H[b,:])

with open('file.txt') as f:
  for line in f:
   x,y,z = [int(s) for s in line.split()] 
   W[x,:] = UpdateW(x,y,z)  
   H[y,:] = UpdateHy(x,y,z)
   H[z,:] = UpdateHz(x,y,z)

这里更新函数将返回W和H的更新行。我需要仅更新P中的第x行和H中的第Y行和第z行。这将一直运行直到文件结束。

我也是这样尝试的:

W[x] = UpdateW(x,y,z)  
H[y] = UpdateHy(x,y,z)
H[z] = UpdateHz(x,y,z)

但是在第一次迭代之后,W,H持有旧值(已初始化),我在这里做错了什么?

0 个答案:

没有答案