Как обсуждалось в комментариях, результирующий объект, вероятно, слишком велик для вашей памяти.
Numpy имеет возможность хранить массивы на вашем диске (надеюсь, SSD, если вы используете жесткий диск, это, вероятно, будет слишком медленным).
Это называется memmap .
Можно сохранить типы данных, такие как строки, в memmap, но это может стать сложным: numpy.memmap для массива строк?
Кроме того, в первую очередь может быть сложно получить данные в memmap. Вы можете разделить файл и загрузить его за несколько шагов Затем вы можете записать отдельные части в карту памяти одну за другой.
Другим важным моментом может быть dtype
. Вы указываете None
и используете много столбцов. У вас есть разные типы данных в разных столбцах? Если да, вы можете переключиться на панд вместо numpy. Это даст вам правильный тип данных для этой таблицы, например, данные.
Обязательно используйте соответствующие типы данных для каждого столбца. Это может значительно уменьшить объем используемой памяти (и может решить вашу проблему): https://www.dataquest.io/blog/pandas-big-data/
Чтобы проверить объем памяти массива, вы можете использовать nbytes
:
np.ones((10,10), dtype="float64").nbytes # 800
np.ones((10,10), dtype="int32").nbytes # 400