Python 3 和 Windows 64 中的内存错误

新手上路,请多包涵

我知道之前已经问过与内存错误相关的问题,例如 hereherehereherehere 。建议的解决方案始终是切换到 Python 3 和/或 Window 64 位,或者在出现错误代码的情况下修复代码。但是,我已经在使用 Python 3 和 Win 64。我还可以从 Windows 任务管理器中看到,当 Python 抛出内存错误时,我的 64GB RAM 中仍有几 GB 可用。

我有大约 15 个日期索引的 pandas 数据帧,每个数据帧有 14000 行,平均有 5000 列浮点数据,以及大约 40-50% 的 NaN 值,我从硬盘读取这些数据。我不能简单地删除 NaN,因为不同的列在不同的日期有 NaN。当我尝试将它们与 pd.concat() 连接时发生内存错误。所以这不是一些错误代码或 while 循环的问题。如果我将某些数据帧留在串联之外,则串联不会发生内存错误,但是当我尝试对串联数据进行 Scikit 学习决策树分析时,它会发生。

我的问题 是如何让 Python 使用所有可用内存而不抛出内存错误?

编辑:截图添加了 IPython 解释器截图(我什至没有安装 Python 2): 在此处输入图像描述

系统信息截图: 在此处输入图像描述

原文由 Saeed 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 441
1 个回答

这里有一些链接,其中包含他们提供的信息片段,希望对您有所帮助。

如何给程序更多的内存

增加你的页面文件。页面文件是硬盘驱动器的一部分,被处理器用作 RAM,也称为虚拟内存。虽然它不如 RAM 快,因为它物理上位于硬盘驱动器上,但增加它有时可以提高程序性能。要访问它,请打开您的控制面板。单击“系统”,然后单击“高级系统设置”,然后单击“性能”选项卡中的“设置”。

你如何设置python程序的内存使用

如果你想限制python vm内存使用,你可以试试这个: 1、Linux, ulimit 命令限制python上的内存使用 2、你可以使用资源模块来限制程序内存使用;如果你想通过为你的应用程序提供更多内存来加速你的程序,你可以试试这个: 1\threading, multiprocessing 2\pypy 3\pysco on only python 2.5

分配内存申请

!.右击我的电脑 2.Properties>Advanced>Performance>Settings>Advanced 3.在Virtual Memory下检查Paging File size,(如果内存够用,经验法则是total V的1/2。可能会用到内存.如果你使用更多,页面文件会在应用程序和操作系统之间发生冲突。希望这对你有帮助

分配内存进程服务器

由于某些程序需要比其他程序更多的内存才能运行,您可以使用任务管理器为特定进程分配额外的内存以提高性能。

其他

http://stackoverflow.com/questions/1760025/limit-python-vm-memory

http://stackoverflow.com/questions/2308091/how-to-limit-python-heap-size

原文由 Elodin 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题