美文网首页
sparse scipy 从稀疏矩阵中选取某些指定列构成新的稀疏

sparse scipy 从稀疏矩阵中选取某些指定列构成新的稀疏

作者: 小歪与大白兔 | 来源:发表于2018-08-09 16:06 被阅读0次

    sparse scipy 从稀疏矩阵中选取某些指定列构成新的稀疏矩阵
    主要想法:
    1.getcol(i)获得指定行
    2.hstack([A,B]) 合并两个矩阵
    注意:hstack返回的矩阵是以coo.matrix形式存储的。

    from scipy.sparse import  hstack
    def combine(row_indices,feature_matrix):   
    #row_indices删除列的list
    #feature_matrix初始的稀疏矩阵
    #采用二分法,减少hstack操作。
        left = 0
        right = len(row_indices)-1
        mid = (left+right)/2
        matrix1 = feature_matrix.getcol(row_indices[left])
        matrix2 = feature_matrix.getcol(row_indices[right])
        if left+1>=right:
            test = hstack([matrix1,matrix2])
            return test
        while left+1<right:
            matrix1 = hstack([matrix1,combine(row_indices[left:mid],feature_matrix)])
            matrix2 = hstack([matrix2,combine(row_indices[mid:right],feature_matrix)])
        res = hstack([matrix1,matrix2])
        return res
    

    相关文章

      网友评论

          本文标题:sparse scipy 从稀疏矩阵中选取某些指定列构成新的稀疏

          本文链接:https://www.haomeiwen.com/subject/zwkcbftx.html