我有一个函数,我在每次迭代中更新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持有旧值(已初始化),我在这里做错了什么?