#python #dictionary #scipy #sparse-matrix
#python #словарь #scipy #разреженная матрица
Вопрос:
Я ищу эффективный способ преобразования разреженной матрицы ( scipy.sparse.csr.csr_matrix
) в словарь Python.
Насколько я понимаю, разреженная матрица внутренне хранит данные в форме, подобной словарю, поэтому кажется, что такое преобразование должно быть тривиальным и быстрым.
Однако я не смог найти ни одного метода, который делает это.
Ответ №1:
Я думаю, вы можете преобразовать свою матрицу в формат разреженной матрицы на основе словаря ключей (сравните документацию 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}