В Python есть несколько очень хороших инструментов для работы с большими данными:
NumPy
Массивы, отображаемые в памяти Numpy, позволяют получить доступ к файлу, сохраненному на диске, как к массиву. В память должны быть загружены только те части массива, с которыми вы активно работаете. Он может использоваться почти так же, как обычный массив.
h5py и pytables
Эти две библиотеки обеспечивают доступ к файлам HDF5. Эти файлы позволяют получить доступ только к части данных. Кроме того, благодаря базовым библиотекам, используемым для доступа к данным, многие математические операции и другие манипуляции с данными могут выполняться без загрузки их в структуру данных Python. Возможны массивные, высоко структурированные файлы, намного больше, чем 5 ТБ. Это также позволяет бесшовное сжатие без потерь.
базы данных
Существуют различные типы баз данных, которые позволяют хранить большие наборы данных и загружать только те части, которые вам нужны. Многие базы данных позволяют вам выполнять манипуляции, не загружая данные вообще в структуру данных Python.
панд
Это обеспечивает высокоуровневый доступ к различным типам данных, включая данные HDF5, файлы CSV, базы данных и даже веб-сайты. Для больших данных он предоставляет оболочки для доступа к файлам HDF5, что упрощает анализ больших наборов данных.
mpi4py
Это инструмент для выполнения вашего кода Python распределенным образом на нескольких процессорах или даже на нескольких компьютерах. Это позволяет вам работать с частями ваших данных одновременно.
Даск
Он предоставляет версию обычного массива numpy, который поддерживает многие обычные операции numpy в многоядерном режиме, который может работать с данными, слишком большими для размещения в памяти.
полыхать
Инструмент, специально разработанный для больших данных. По сути, это оболочка для вышеуказанных библиотек, предоставляющая согласованные интерфейсы для различных методов хранения больших объемов данных (таких как HDF5 или базы данных) и инструменты, облегчающие манипулирование, выполнение математических операций и анализ данных, которые слишком велик, чтобы уместиться в память