从scipy csr_matrix获取特定列

时间:2015-05-21 05:13:41

标签: scipy

我有一个稀疏矩阵,如果我打印的话看起来像这样:

  (0, 1773)     0.626247271075
  (0, 1604)     0.626247271075
  (0, 1515)     0.299755787345
  (0, 660)      0.354647964743
  (1, 2379)     0.206542018824
  (1, 2159)     0.158175640686

实际上有超过2000列,但因为它是稀疏矩阵,所以只打印它。我想获得看起来像第二列的值,按最后一列排序,如下所示:

  x: 1604     y: 0.626247271075
  x: 660      y: 0.354647964743
  x: 1515     y: 0.299755787345
  x: 2379     y: 0.206542018824
  x: 2159     y: 0.158175640686

Scipy文档对我来说不是很清楚,如何访问这些列?

1 个答案:

答案 0 :(得分:0)

您可以使用str_replace()

访问非零索引
from scipy.sparse import csr_matrix
A = csr_matrix([[1,2,0],[0,0,3],[4,0,5]])
print(A.nonzero()) 

(array([0, 0, 1, 2, 2]), array([0, 1, 2, 0, 2]))