为了科学目的,我需要生成大型矩阵(马尔可夫链)。我进行计算并将其放入一个由20301个元素组成的列表中(=我的矩阵的一行)。我需要所有这些数据在内存中以进行下一个马尔可夫步骤,但如果需要,我可以将它们存储在别处(例如文件),即使这会减慢我的马尔可夫链遍历速度。我的计算机(科学实验室)配置为:Bi-xenon 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是否有帮助?它们的内存限制是什么? 其他语言呢?