import numpy as np
def fill(a):
for i in range(a.shape[1]):
temp_col = a[:,i]
nan_num = np.count_nonzero(np.isnan(temp_col))
if nan_num != 0:
temp_not_nan_col = temp_col[temp_col == temp_col]
temp_col[np.isnan(temp_col)] = temp_not_nan_col.mean()
a[:,i] = temp_col
return a
if __name__ == "__main__":
a = np.arange(24).reshape(4, 6).astype(float)
a[1, 2:] = np.nan
print(a)
a = fill(a)
print(a)
上面是修改nan位置的值,请问第9行代码去了为什么a的值也改变了,没有第9行(a[:,i] = temp_col),都没对a做修改,但最后a的值也变了,很疑惑