Надеюсь, это не звучит слишком сложно.

ужно производить большие и большие (очень) матрицы (цепи Маркова) для научных целей. Я выполняю исчисление, которое я помещаю в список из 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? Какие у них пределы памяти? А как насчет других языков?

Ответы на вопрос(1)

Ваш ответ на вопрос