【发布时间】:2011-07-29 02:24:20
【问题描述】:
出于科学目的,我需要生成大量(非常)矩阵(马尔可夫链)。我执行微积分,并将其放入 20301 个元素的列表(=我的矩阵的一行)。我需要内存中的所有这些数据才能继续执行下一个马尔可夫步骤,但如果需要,我可以将它们存储在其他地方(例如文件),即使它会减慢我的马尔可夫链遍历速度。我的电脑(科学实验室):双氙气6核/12线程,12GB内存,操作系统:win64
Traceback (most recent call last):
File "my_file.py", line 247, in <module>
ListTemp.append(calculus)
MemoryError
微积分结果示例:9.233747520008198e-102(是的,超过 1/9000)
存储第19766个元素时出现错误:
ListTemp[19766]
1.4509421012263216e-103
如果我走得更远
Traceback (most recent call last):
File "<pyshell#21>", line 1, in <module>
ListTemp[19767]
IndexError: list index out of range
所以这个列表在 19767 循环中有内存错误。
问题:
列表是否有内存限制? 是“按列表限制”还是 “全局每个脚本限制”?
如何绕过这些限制? 有什么可能吗?
使用 numpy、python64 会有帮助吗?什么 他们有内存限制吗?什么 关于其他语言?
【问题讨论】:
-
如果您遇到意外的内存错误,并且您认为应该有足够的 RAM 可用,这可能是因为您使用的是 32 位 python 安装。
-
大和大!哇!还好你有这么多内存! ????