Ejemplo n.º 1
0
    def __call__(self, data):
        if isinstance(data, Instance):
            return self.negate != bn.anynan(data._y)
        if isinstance(data, Storage):
            try:
                return data._filter_has_class(self.negate)
            except NotImplementedError:
                pass

        r = np.fromiter((bn.anynan(inst._y) for inst in data), bool, len(data))
        if self.negate:
            r = np.logical_not(r)
        return data[r]
Ejemplo n.º 2
0
    def __call__(self, data):
        if isinstance(data, Instance):
            return self.negate == bn.anynan(data._y)
        if isinstance(data, Storage):
            try:
                return data._filter_has_class(self.negate)
            except NotImplementedError:
                pass

        r = np.fromiter((not bn.anynan(inst._y) for inst in data), bool, len(data))
        if self.negate:
            r = np.logical_not(r)
        return data[r]
Ejemplo n.º 3
0
    def __call__(self, data):
        if isinstance(data, Instance):
            return self.negate == bn.anynan(data._x)
        if isinstance(data, Storage):
            try:
                return data._filter_is_defined(self.columns, self.negate)
            except NotImplementedError:
                pass

        r = np.fromiter((not bn.anynan(inst._x) for inst in data), dtype=bool, count=len(data))
        if self.negate:
            r = np.logical_not(r)
        return data[r]
Ejemplo n.º 4
0
    def __call__(self, data):
        if isinstance(data, Instance):
            return self.negate != bn.anynan(data._values)
        if isinstance(data, Storage):
            try:
                return data._filter_is_defined(self.columns, self.negate)
            except NotImplementedError:
                pass

        r = np.fromiter((bn.anynan(inst._values) for inst in data),
                        dtype=bool, count=len(data))
        if self.negate:
            r = np.logical_not(r)
        return data[r]
Ejemplo n.º 5
0
 def _filter_has_class(self, negate=False):
     if sp.issparse(self.Y):
         if negate:
             retain = self.Y.indptr[1:] != self.Y.indptr[-1:] + self.Y.shape[1]
         else:
             retain = self.Y.indptr[1:] == self.Y.indptr[-1:] + self.Y.shape[1]
     else:
         retain = bn.anynan(self.Y, axis=1)
         if not negate:
             retain = np.logical_not(retain)
     return Table.from_table_rows(self, retain)
Ejemplo n.º 6
0
 def _filter_is_defined(self, columns=None, negate=False):
     if columns is None:
         if sp.issparse(self.X):
             remove = self.X.indptr[1:] != self.X.indptr[-1:] + self.X.shape[1]
         else:
             remove = bn.anynan(self.X, axis=1)
         if sp.issparse(self.Y):
             remove = np.logical_or(remove, self.Y.indptr[1:] != self.Y.indptr[-1:] + self.Y.shape[1])
         else:
             remove = np.logical_or(remove, bn.anynan(self.Y, axis=1))
     else:
         remove = np.zeros(len(self), dtype=bool)
         for column in columns:
             col, sparse = self.get_column_view(column)
             if sparse:
                 remove = np.logical_or(remove, col == 0)
             else:
                 remove = np.logical_or(remove, bn.anynan([col], axis=0))
     retain = remove if negate else np.logical_not(remove)
     return Table.from_table_rows(self, retain)
Ejemplo n.º 7
0
 def _filter_has_class(self, negate=False):
     if sp.issparse(self.Y):
         if negate:
             retain = (self.Y.indptr[1:] !=
                       self.Y.indptr[-1:] + self.Y.shape[1])
         else:
             retain = (self.Y.indptr[1:] == self.Y.indptr[-1:] +
                       self.Y.shape[1])
     else:
         retain = bn.anynan(self.Y, axis=1)
         if not negate:
             retain = np.logical_not(retain)
     return Table.from_table_rows(self, retain)
Ejemplo n.º 8
0
 def _filter_is_defined(self, columns=None, negate=False):
     if columns is None:
         if sp.issparse(self.X):
             remove = (self.X.indptr[1:] !=
                       self.X.indptr[-1:] + self.X.shape[1])
         else:
             remove = bn.anynan(self.X, axis=1)
         if sp.issparse(self.Y):
             remove = np.logical_or(remove, self.Y.indptr[1:] !=
                                    self.Y.indptr[-1:] + self.Y.shape[1])
         else:
             remove = np.logical_or(remove, bn.anynan(self.Y, axis=1))
     else:
         remove = np.zeros(len(self), dtype=bool)
         for column in columns:
             col, sparse = self.get_column_view(column)
             if sparse:
                 remove = np.logical_or(remove, col == 0)
             else:
                 remove = np.logical_or(remove, bn.anynan([col], axis=0))
     retain = remove if negate else np.logical_not(remove)
     return Table.from_table_rows(self, retain)
Ejemplo n.º 9
0
 def has_missing_class(self):
     """Return `True` if there are any missing class values."""
     return bn.anynan(self.Y)
Ejemplo n.º 10
0
 def has_missing(self):
     """Return `True` if there are any missing attribute or class values."""
     return bn.anynan(self.X) or bn.anynan(self.Y)
Ejemplo n.º 11
0
 def has_missing_class(self):
     """Return `True` if there are any missing class values."""
     return bn.anynan(self.Y)
Ejemplo n.º 12
0
 def has_missing(self):
     """Return `True` if there are any missing attribute or class values."""
     return bn.anynan(self.X) or bn.anynan(self.Y)