Source code for jubakit.loader.sparse

# -*- coding: utf-8 -*-

from __future__ import absolute_import, division, print_function, unicode_literals

from ..base import BaseLoader
from ..compat import *

[docs]class SparseMatrixLoader(BaseLoader): """ SparseMatrixLoader is a loader to read from scipy.sparse 2-d matrix. Zero entries are ignored. """
[docs] def __init__(self, matrix, feature_names=None): self._matrix = matrix.tocsr() self._feature_names = feature_names
[docs] def rows(self): m = self._matrix for i in range(m.shape[0]): cols = m.indices[m.indptr[i]:m.indptr[i+1]] if self._feature_names is None: fv_names = ['v{0}'.format(col) for col in cols] else: fv_names = [self._feature_names[col] for col in cols] data = dict(zip(fv_names, m.data[m.indptr[i]:m.indptr[i+1]])) yield data