我开始使用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 ]
答案 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
更复杂。