【发布时间】:2019-03-07 00:21:52
【问题描述】:
我正在尝试使用布尔掩码来寻址 numpy 数组中的行:
isnan = np.isnan(self.X[:, AGE_COLUMN].astype(float))
self.X[isnan, AGE_COLUMN] = np.mean(self.X[:, AGE_COLUMN].astype(float))
isnan 和 X 是 dtype。
首先我检查年龄列中的哪些行是 nan。然后我想将这些值设置为所有年龄段的平均值。调试器对self.X[isnan, AGE_COLUMN] 有以下结果:
[nan nan nan nan nan nan nan nan nan nan ....]
如果我尝试self.X[[True, False, True], AGE_COLUMN],例如它会返回索引行。但是使用 isnan 数组就不行了。
如何解决此问题以将 nans 设置为平均值。
【问题讨论】:
-
Numpy 有
nanmean和nan_to_num函数;这些应该会有所帮助。 -
something和nan的mean是nan,你应该在计算平均值之前去掉nans
标签: python numpy nan masked-array