Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python:MemoryError(脚本有时运行)_Python_Numpy_Memory_Out Of Memory - Fatal编程技术网

Python:MemoryError(脚本有时运行)

Python:MemoryError(脚本有时运行),python,numpy,memory,out-of-memory,Python,Numpy,Memory,Out Of Memory,我有一个脚本,它有时会成功运行,提供所需的输出,但稍后重新运行时会出现以下错误: numpy.core._exceptions.MemoryError: Unable to allocate 70.8 MiB for an array with shape (4643100, 2) and data type float64 我意识到这个问题已经被回答了好几次(比如),但到目前为止,没有一个解决方案对我有效。我想知道是否有人知道为什么有时脚本运行正常,但过了一会儿又出现错误 我降低了计算机的R

我有一个脚本,它有时会成功运行,提供所需的输出,但稍后重新运行时会出现以下错误:

numpy.core._exceptions.MemoryError: Unable to allocate 70.8 MiB for an array with shape (4643100, 2) and data type float64
我意识到这个问题已经被回答了好几次(比如),但到目前为止,没有一个解决方案对我有效。我想知道是否有人知道为什么有时脚本运行正常,但过了一会儿又出现错误

我降低了计算机的RAM使用率,增加了虚拟内存,重新启动了笔记本电脑,但似乎没有任何帮助(Windows 10、RAM 8.0GB、python 3.9.2 32位)


PS:不幸的是,无法共享脚本/创建伪脚本。

Python是一种垃圾收集语言。这意味着每次运行程序时,内存使用峰值可能不同。因此,第一次运行该程序时,其峰值内存使用量小于可用内存。但下次运行程序时,其峰值内存使用量足以消耗所有可用内存。这假设主机系统上的可用内存是恒定的,这是一个错误的假设。因此,可用内存的波动,即其他正在运行的进程未使用的内存,是程序可能一次引发
MemoryError
,但另一次无误终止的另一个原因


旁注:增加虚拟内存是最后的选择。这不是内存,而是像内存一样使用的磁盘,它比内存慢得多。

感谢您的回复,这解释了很多。绕过这个问题有什么建议吗?有几种方法可以避免<代码>内存错误>代码>:向主机系统中添加更多内存,减少程序的内存消耗,减少系统其余部分使用的内存量,或者改写程序,允许使用内存管理,如C或C++。