Надеюсь, это не звучит слишком сложно.
ужно производить большие и большие (очень) матрицы (цепи Маркова) для научных целей. Я выполняю исчисление, которое я помещаю в список из 20301 элемента (= одна строка моей матрицы). Мне нужны все эти данные в памяти, чтобы перейти к следующему шагу Маркова, но я могу хранить их в другом месте (например, в файле), если это необходимо, даже если это замедлит мой обход цепи Маркова. Мой компьютер (научная лаборатория): Биксенон 6 ядер / 12 нитей каждый, 12 ГБ памяти, ОС: 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? Какие у них пределы памяти? А как насчет других языков?