コード例 #1
0
    def slice(self, k=None, rows=None, cols=None):
        '''
        Slice out a part of the SVD results, fewer svals, rows, and/or columns.

        k : int - how many svals to keep. None -> keep all.
        rows : [obj] - a list of rows to keep. None -> keep all.
        cols : [obj] - a list of cols to keep. None -> keep all.
        '''
        row_labels = self.u.label_list(0)
        col_labels = self.v.label_list(0)
        if rows is not None:
            rows = map(row_labels.index, rows)
            row_labels = indexable_set(rows, len(rows))
        if cols is not None:
            cols = map(col_labels.index, rows)
            col_labels = indexable_set(cols, len(cols))
        return LabeledSVD2DResults.layer_on(super(LabeledSVD2DResults, self).slice(k, rows, cols), [row_labels, col_labels])
コード例 #2
0
ファイル: labeled_view.py プロジェクト: hjlewischen/divisi
    def slice(self, k=None, rows=None, cols=None):
        """
        Slice out a part of the SVD results, fewer svals, rows, and/or columns.

        k : int - how many svals to keep. None -> keep all.
        rows : [obj] - a list of rows to keep. None -> keep all.
        cols : [obj] - a list of cols to keep. None -> keep all.
        """
        row_labels = self.u.label_list(0)
        col_labels = self.v.label_list(0)
        if rows is not None:
            rows = map(row_labels.index, rows)
            row_labels = indexable_set(rows, len(rows))
        if cols is not None:
            cols = map(col_labels.index, rows)
            col_labels = indexable_set(cols, len(cols))
        return LabeledSVD2DResults.layer_on(
            super(LabeledSVD2DResults, self).slice(k, rows, cols), [row_labels, col_labels]
        )
コード例 #3
0
    def __init__(self, tensor, label_lists=None):
        View.__init__(self, tensor)
        shape = tensor.shape
        if label_lists is None:
            label_lists = [None]*self.tensor.ndim

        if tensor.ndim != len(label_lists):
            raise IndexError('Number of label lists (%d) does not match number of dimensions (%s)' % (len(label_lists), tensor.ndim))

        self._labels = [indexable_set(l, shape[mode])
                        for mode, l in enumerate(label_lists)]

        self.tensor.ensure_index_is_valid(tuple(len(label_list)-1 for label_list in self._labels))
コード例 #4
0
ファイル: labeled_view.py プロジェクト: hjlewischen/divisi
    def __init__(self, tensor, label_lists=None):
        View.__init__(self, tensor)
        shape = tensor.shape
        if label_lists is None:
            label_lists = [None] * self.tensor.ndim

        if tensor.ndim != len(label_lists):
            raise IndexError(
                "Number of label lists (%d) does not match number of dimensions (%s)" % (len(label_lists), tensor.ndim)
            )

        self._labels = [indexable_set(l, shape[mode]) for mode, l in enumerate(label_lists)]

        self.tensor.ensure_index_is_valid(tuple(len(label_list) - 1 for label_list in self._labels))