【问题标题】:Memory explosion with boolean indexing in PandasPandas 中布尔索引的内存爆炸
【发布时间】:2013-12-25 23:52:08
【问题描述】:

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

我可以毫不费力地制作特征向量的布尔掩码来查找极端异常值:

mask = feature_series > 10 | feature_series < 10

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

feature_series[mask] = np.nan

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

mask.any()

是什么导致这种情况发生?我觉得这可能是一个错误,但我对 Pandas 还是比较陌生,不能确定。

【问题讨论】:

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


    【解决方案1】:

    可能你需要一些括号

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

    【讨论】:

    • 缺少括号又是罪魁祸首。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-02
    • 1970-01-01
    • 2019-07-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多