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

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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。