1

我对配置或修补熊猫感兴趣,以使其内存开销尽可能低。在一个实验中,我创建了 2 个 numpy 数组,每个数组包含 5000 万个 uint32 值。以 numpy 格式存储这些数组需要 200 + 200 = 400 MB。如果我将其中一个数组包装成一个 Series 对象(index=None),那么它会消耗大约 600 MB 的内存。如果我将这两个数组包装成一个 DataFrame 对象(index=None),那么内存需求约为 1600 MB。

似乎额外的内存要求是#rows * 8 字节用于系列存储,#rows * (#columns + 1) * 8 字节用于 DataFrame 存储。你能解释一下Series和DataFrame对象中究竟存储了哪些额外数据以及原始numpy数组吗?

4

1 回答 1

1

额外的存储是由于行索引被存储为 64 位整数。有一个未解决的问题可以解决您的用例的内存使用问题:https ://github.com/pydata/pandas/issues/939

于 2012-03-24T21:51:42.530 回答