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

2018-08-09  本文已影响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
上一篇下一篇

猜你喜欢

热点阅读