如何将 SciPy 稀疏矩阵转换为字典

5

我希望找到一种高效的方法,将稀疏矩阵(scipy.sparse.csr.csr_matrix)转换成Python字典。

据我所知,稀疏矩阵内部以类似于字典的形式保存数据,因此这种转换应该很容易且快速。

但是,我没有找到任何可以实现这一点的方法。

1个回答

4
我认为您可以将矩阵转换为基于稀疏矩阵格式的键字典(请参考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()))

This prints out
这将打印出:
{(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}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接