使用loadtxt时内存不足

时间:2012-08-25 17:46:32

标签: python

我尝试在大小为6.8 GB的文件上使用loadtxt('x.txt', delimiter=' ')。这会给出内存错误。我的电脑有8 GB的内存。当我查看我的计算机性能表时,我发现当使用3,4 GB的内存时,Python已经提供了错误消息。为什么Python在放弃之前不会尝试使用剩余的4,6 GB?

此致!

Per P。

2 个答案:

答案 0 :(得分:2)

那是numpy.loadtxt吗?查看source code,它将已解析的行(指定类型的列表或元组)推送到列表中,然后将其打包到数组中。这将占用比文件大小更多的内存,甚至包含来自文件的值的打包float数组的大小。我想说,即使在8 GB RAM机器上使用64位Python也不太可能加载这个文件。

答案 1 :(得分:0)

您的Python可能是在32位架构中编译的,因此它无法处理超过4 GB的内存。要解决此问题,请在64位操作系统上安装64位Python。

PS。他放弃了3.4(不是4 GB),因为地址空间的某些部分是保留的。