Как преобразовать разреженную матрицу SciPy в словарь - PullRequest
0 голосов
/ 27 марта 2019

Я ищу эффективный способ преобразования разреженной матрицы (scipy.sparse.csr.csr_matrix) в словарь Python.

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

Однако я не смог найти метод, который это делает.

1 Ответ

0 голосов
/ 27 марта 2019

Я думаю, вы можете преобразовать свою матрицу в словарь формата разреженной матрицы на основе ключей (сравните документация scipy ), а затем получить доступ к базовым свойствам словаря с помощью метода items:

import numpy as np
from scipy.sparse import csr_matrix

c = csr_matrix(np.array([[1,2,3],
                         [4,5,6],
                         [7,8,9]])) # construct an example matrix
d = c.todok() # convert to dictionary of keys format
print(dict(d.items()))

Это распечатывает

{(0, 0): 1, (1, 0): 4, (2, 0): 7, (0, 1): 2, (1, 1): 5, (2, 1): 8, (0, 2): 3, (1, 2): 6, (2, 2): 9}

...