dat = np.array([[1, 2, 3], [4, 5, nan], [nan, 6, nan], [nan, nan, nan]])
mdat = np.ma.masked_array(dat, np.isnan(dat))
mm = np.mean(mdat, axis=1)
print(mm.filled(np.nan))
NumPy: вычислить средние значения с удаленными NaN