我在使用Pandas 12.0处理一个非常大的浮点数数据序列。我试图将这个序列中的极端异常值设为NaN,这个序列代表一个标准化的特征向量(均值为0,标准差为1)。
我没有问题地创建了一个布尔掩码来查找特征向量的极端异常值:
mask = feature_series > 10 | feature_series < 10
这几乎不消耗资源。然而,当我尝试实际使用这个掩码时,会发生内存爆炸,并且在崩溃前不得不强制退出。这发生在以下操作中:
feature_series[mask] = np.nan
不仅限于这个操作。我在使用以下操作时也会发生内存爆炸:
mask.any()
这是什么原因导致的?我觉得这可能是一个bug,但我对Pandas还比较新手,不能确定。
回答:
可能你需要一些括号
mask = (feature_series > 10) | (feature_series < 10)