我有一個numpy的陣列類似如下:平均忽略沿着在NumPy的陣列列的NaN而不使用numpy.nanmean
x = array([[ 1., 2., 3.],
[ 4., 5., 6.],
[ nan, 8., 9.]])
和我想要計算各列的均值。如果我使用np.mean(x, axis=0)
,那麼我得到nan
作爲第一列的平均值,並使用x[~np.isnan(x)]
過濾掉nan
值將數組變爲1D數組。
我需要使用numpy的一箇舊版本,所以我不能使用numpy.nanmean
編輯:This comment解釋了爲什麼這不是貼
的可能的複製[NumPy的:計算與NaN的平均去除(https://開頭計算器.com/questions/5480694/numpy-calculate-averages-with-nans-removed) –
@StefanoNardo好找。鏈接問答的帖子基本上建議使用'numpy.ma.masked_array',我沒有發現它是有效的,或者以某種形式使用'nanmean',這是OP不能使用的。鑑於這種情況,恕我直言,使用普通的布爾數組進行掩蔽將是一條可行的路。 – Divakar