先提取矩阵中非零项;再误差计算
obs_A = A.ravel()[np.flatnonzero(A)] obs_X = X.ravel()[np.flatnonzero(A)] error = np.linalg.norm(obs_A - obs_X)方式2:
利用掩码矩阵计算
# mask=~np.isnana(A) mask=(A==0) mask=~mask error=np.linalg.norm(mask*A-maks*X)
矩阵中nan值与0值的互相转换
data=np.array([[np.nan,0,1,8],[0,9,6,np.nan]]) data[np.isnan(data)]=0 # 将data中的nan值转为0值 data[data==0]=np.nan # 将data中的0值转为nan值



