我有一个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