Я работаю над алгоритмом, который использует диагональные и первые недиагональные блоки большой (будет e06 x e06) блочно-диагональной разреженной матрицы.
Прямо сейчас я создаю dict, который хранит блоки таким образом, чтобы я мог получить доступ к блокам в виде матрицы. Например, B [0,0] (5x5) дает первый блок матрицы A
(20x20), предполагая блоки 5x5 и что матрица A
имеет тип sparse.lil
.
Это работает нормально, но занимает ужасно много времени. Это неэффективно, потому что копирует данные, как эта ссылка показала, к моему удивлению: Метод GetItem
Есть ли способ сохранить представление только на разреженной матрице в dict? Я хотел бы изменить содержимое и по-прежнему иметь возможность использовать те же идентификаторы. Это нормально, если это займет немного больше времени, так как это нужно сделать только один раз. Блоки будут иметь много разных размеров и форм.