В моем коде я сейчас повторяю и создаю три списка:
data, row, col
Существует большое количество повторений (row, col)
пар, и в моей окончательной разреженной матрице M
я хотел бы, чтобы значение M[row, col]
было суммой всех соответствующих элементов в data
. Из документации следует, что coo_matrix
кажется идеальным, и для небольших примеров он отлично работает.
Проблема, с которой я сталкиваюсь, заключается в том, что когда я увеличиваю размер своей задачи, похоже, что промежуточные списки data, row, col
используют все мои (8 ГБ) памяти и пространство подкачки, и мой скрипт автоматически уничтожается.
Итак, мой вопрос:
Есть ли подходящий формат или эффективный способ постепенного построения моей суммированной матрицы, поэтому мне не нужно хранить полные промежуточные списки/массивы numpy?
Моя программа зацикливается на сетке, создавая local_data, local_row, local_col
списков в каждой точке, элементы которых затем добавляются к data, row, col
, поэтому возможность обновлять разреженную матрицу списками в соответствии с конструкторами разреженной матрицы была бы идеальным случаем.