我尝试在大小为6.8 GB的文件上使用loadtxt('x.txt', delimiter=' ')
。这会给出内存错误。我的电脑有8 GB的内存。当我查看我的计算机性能表时,我发现当使用3,4 GB的内存时,Python已经提供了错误消息。为什么Python在放弃之前不会尝试使用剩余的4,6 GB?
此致!
Per P。
答案 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),因为地址空间的某些部分是保留的。