为了科学目的,我需要产生越来越大的(非常)矩阵(马尔可夫链)。我执行微积分,将其放入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是否有帮助?它们的内存限制是多少?那其他语言呢?