Подтвердить что ты не робот

Scipy разреженные матрицы - назначение и использование различных реализаций

Scipy имеет доступные различные типы разреженных матриц. Каковы наиболее важные различия между этими типами и какова разница в их предполагаемом использовании?

Я разрабатываю код в python на основе кода примера 1 в Matlab. В одном разделе кода используются разреженные матрицы, которые, похоже, имеют один (раздражающий) тип в Matlab, и я пытаюсь выяснить, какой тип я должен использовать 2 в python.


1: Это для класса. Большинство людей делают проект в Matlab, но мне нравится создавать ненужную работу и беспорядок - по-видимому.

2: Это академический вопрос: у меня есть код, который работает правильно с форматом CSR, но я интересен зная, что такое оптимальные способы использования.

4b9b3361

Ответ 1

Извините, если я не отвечаю на это достаточно полно, но, надеюсь, я могу дать некоторое представление.

CSC (сжатая разреженная колонка) и CSR (сжатая разреженная строка) более компактны и эффективны, но сложны для создания "с нуля". Coo (Координаты) и DOK (Словарь ключей) легче построить и затем могут быть преобразованы в CSC или CSR через matrix.tocsc() или matrix.tocsr().

CSC более эффективен при доступе к векторам столбцов или столбцам, как правило, поскольку он хранится в виде массивов столбцов и их значений в каждой строке.

CSR-матрицы противоположны; хранятся в виде массивов строк и их значений в каждом столбце и более эффективны при доступе к строковым векторам или операциям строк.