在Pandas中使用布尔索引进行内存爆炸

时间:2013-12-09 00:15:28

标签: python pandas machine-learning sparse-matrix pytables

我正在使用Pandas 12.0中的大量浮动数据系列。我想要做的是在本系列中为NaN设置极端异常值,它代表标准化的特征向量(平均值为0,标准值为1)。

我可以使用特征向量的布尔掩码来查找极端异常值:

mask = feature_series > 10 | feature_series < 10

这需要最少的资源。但是,当我尝试实际使用此掩码时,我会遇到内存爆炸并且必须在崩溃发生之前强制退出。这种情况发生在:

feature_series[mask] = np.nan

它也不仅限于此操作。我也得到了内存爆炸:

mask.any()

是什么让这种情况发生?我觉得这可能是一个错误,但我对熊猫来说还是比较新的,不能确定。

1 个答案:

答案 0 :(得分:2)

可能你需要一些括号

mask = (feature_series > 10) | (feature_series < 10)