def _mask_clip(self, row_or_col):
'''
Cuts out items from matrix that do not contain at least k values on axis=0
'''
mat = self.mat
k = self.k
lil = mat.tolil()
to_remove = []
for idx, i in enumerate(lil.rows):
if len(i) < k:
to_remove.append(idx)
lil.rows = np.delete(lil.rows, to_remove)
lil.data = np.delete(lil.data, to_remove)
if row_or_col == 'row':
self.row_idx = np.delete(range(lil.shape[0]), to_remove)
elif row_or_col == 'col':
self.col_idx = np.delete(range(lil.shape[0]), to_remove)
remaining = lil.shape[0] - len(to_remove)
lil = lil[:remaining]
self.mat = lil
return self
评论列表
文章目录