python 第一行非零_在Python中的稀疏矩阵中按行查找非零条目的快速方法

你想要这些指数的形式是什么?例如

x=sparse.csr_matrix([[1,2,0,3,0,0],[0,0,0,1,0,0]])

In [15]: for r in x:

....: print r.nonzero()

(array([0]), array([0]))

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

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

In [30]: [r.nonzero()[1] for r in x] # or as list

Out[30]: [array([0]), array([0, 2]), array([0, 1, 2])]

In [16]: x.nonzero()

Out[16]: (array([0, 1, 1, 2, 2, 2]), array([0, 0, 2, 0, 1, 2]))整个矩阵上的nonzero具有相同的数字,但它们不会拆分为子列表。但tolil格式与列表列表具有相同的信息。

In [18]: xl=x.tolil()

In [19]: xl.rows

Out[19]: array([[0], [0, 2], [0, 1, 2]], dtype=object)

In [23]: xc=x.tocoo()

In [24]: xc.row

Out[24]: array([0, 1, 2, 2, 1, 2])

In [25]: xc.col

Out[25]: array([0, 0, 0, 1, 2, 2])在coo格式中,存在相同的索引,但顺序不同。但首先将其转换为csr,顺序为

In [29]: x.tocsr().tocoo().col

Out[29]: array([0, 0, 2, 0, 1, 2])

你可能感兴趣的:(python,第一行非零)