美文网首页
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