У меня есть огромный набор данных (около 5 000 000 строк в базе данных), который я хочу представить в виде графика. По алгоритмическим причинам необходимо хранить набор данных в матрице смежности. Матрица будет очень разреженной и симметричной.
Сначала я подумал о сохранении графика в таблице базы данных. Для этого потребуется 5 000 000 строк, что не должно быть проблемой. Но 5 000 000 столбцов? Я не очень хорошо разбираюсь в базах данных, но у меня такое чувство, что это не рекомендуемый способ сделать это.
После некоторого поиска в Google я нашел SciPy, в котором есть несколько объектов Sparse Matrix. lil_matrix и coo_matrix кажутся мне нужными.
Поскольку я буду работать с этой матрицей, используя python, SciPy кажется хорошей причиной для перехода. Вопрос для меня сейчас заключается в том, как хранить граф, известный как разреженная матрица?
Должен ли я использовать файл csv? Должен ли я использовать coo_matrix для сохранения матрицы в daatabase_table? В обоих случаях получается около 2 500 000 000 000 строк/строк.
Или есть гораздо лучший способ для создания и хранения такой симметричной и разреженной «Матрицы» размером около 5 000 000 в питоне?
Я использую numpy и некоторые самописные алгоритмы на python, которые я хочу запустить на матрице. Так что было бы здорово, если бы предложения облегчили использование python на графике.
Не знаю, предоставил ли я достаточно информации для ответа. Если вам нужна дополнительная информация: не стесняйтесь спрашивать меня в комментарии или около того. Я с удовольствием отредактирую свой ответ.
Заранее спасибо за любое предложение!