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