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])

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值