蟒蛇。以CSR格式访问列索引

时间:2016-03-03 17:47:20

标签: python scipy sparse-matrix

我开始使用python和CSR格式。

我知道如果我有一个正确初始化的csr矩阵,并且让它调用它" conectivity",那么,当我输入

conectivity[14,:]

我会得到这样的答案:

(0, 1)  1.0      
(0, 13) 1.0       
(0, 15) 1.0      
(0, 27) 1.0 

获取此向量的正确方法是什么?

[ 1, 13, 15, 27 ]

1 个答案:

答案 0 :(得分:0)

conectivity是一个矩阵(不是np.matrix的子类,但功能相似)。

conectivity[14,:]

是另一个2d稀疏矩阵。这就是你的印刷品显示的内容

(0, 1)  1.0      
(0, 13) 1.0       
(0, 15) 1.0      
(0, 27) 1.0 

conectivity[14,:].toarray()(简称.A)会为您提供类似

的内容
[[0,1,0...1,0,1,....]]

一个2d数组,有1行,有很多0。

conectivity[14,:].data是此矩阵的data属性。

conectivity[14,:].col是列索引属性。我想这就是你想要的。

conectivity[14,:].nonzero()还提供行和列值(非零术语)。

我应该补充一点,虽然nonzero适用于所有稀疏格式,.col仅适用于coo格式(coo格式不实现这种形式的索引)。对于csr矩阵,.indices给出列索引值;对于单行矩阵,这应该是所需的数组。对于多行矩阵.indices更复杂。