Exemple #1
0
    def data_to_model_domain(self, data: Table) -> Table:
        """
        Transforms data to the model domain if possible.

        Parameters
        ----------
        data
            Data to be transformed to the model domain

        Returns
        -------
        Transformed data table

        Raises
        ------
        DomainTransformationError
            Error indicates that transformation is not possible since domains
            are not compatible
        """
        if data.domain == self.domain:
            return data

        if self.original_domain.attributes != data.domain.attributes \
                and data.X.size \
                and not all_nan(data.X):
            new_data = data.transform(self.original_domain)
            if all_nan(new_data.X):
                raise DomainTransformationError(
                    "domain transformation produced no defined values")
            return new_data.transform(self.domain)

        return data.transform(self.domain)
    def data_to_model_domain(self, data: Table) -> Table:
        if data.domain == self.domain:
            return data

        if self.original_domain.attributes != data.domain.attributes \
                and data.X.size \
                and not all_nan(data.X):
            new_data = data.transform(self.original_domain)
            if all_nan(new_data.X):
                raise DomainTransformationError(
                    "domain transformation produced no defined values")
            return new_data.transform(self.domain)
        return data.transform(self.domain)
Exemple #3
0
    def data_to_model_domain(
            self,
            data: Table,
            progress_callback: Callable = dummy_callback) -> Table:
        """
        Transforms data to the model domain if possible.

        Parameters
        ----------
        data
            Data to be transformed to the model domain
        progress_callback
            Callback - callable - to report the progress

        Returns
        -------
        Transformed data table

        Raises
        ------
        DomainTransformationError
            Error indicates that transformation is not possible since domains
            are not compatible
        """
        if data.domain == self.domain:
            return data

        progress_callback(0)
        if self.original_domain.attributes != data.domain.attributes \
                and data.X.size \
                and not all_nan(data.X):
            progress_callback(0.5)
            new_data = data.transform(self.original_domain)
            if all_nan(new_data.X):
                raise DomainTransformationError(
                    "domain transformation produced no defined values")
            progress_callback(0.75)
            data = new_data.transform(self.domain)
            progress_callback(1)
            return data

        progress_callback(0.5)
        data = data.transform(self.domain)
        progress_callback(1)
        return data
Exemple #4
0
    def data_to_model_domain(self, data: Table, progress_callback: Callable) \
            -> Table:
        if data.domain == self.domain:
            return data

        progress_callback(0)
        if self.original_domain.attributes != data.domain.attributes \
                and data.X.size \
                and not all_nan(data.X):
            progress_callback(0.5)
            new_data = data.transform(self.original_domain)
            if all_nan(new_data.X):
                raise DomainTransformationError(
                    "domain transformation produced no defined values")
            progress_callback(0.75)
            data = new_data.transform(self.domain)
            progress_callback(1)
            return data

        progress_callback(0.5)
        data = data.transform(self.domain)
        progress_callback(1)
        return data
Exemple #5
0
 def test_axis_1_with_nans(self, array):
     expected = np.array([0, 1, 0, 0], dtype=bool)
     result = all_nan(array(self.x_with_nans), axis=1)
     np.testing.assert_equal(result, expected)
Exemple #6
0
 def test_axis_none_with_nans(self, array):
     self.assertTrue(all_nan(array(self.x_only_nans)))
Exemple #7
0
 def test_axis_none_without_nans(self, array):
     self.assertFalse(all_nan(array(self.x_no_nans)))