Beispiel #1
0
    def transformed(self, data):
        if data.X.shape[0] == 0:
            return data.X
        data = data.copy()

        if self.method == Normalize.Vector:
            nans = np.isnan(data.X)
            nan_num = nans.sum(axis=1, keepdims=True)
            ys = data.X
            if np.any(nan_num > 0):
                # interpolate nan elements for normalization
                x = getx(data)
                ys = interp1d_with_unknowns_numpy(x, ys, x)
                ys = np.nan_to_num(ys)  # edge elements can still be zero
            data.X = sknormalize(ys, norm='l2', axis=1, copy=False)
            if np.any(nan_num > 0):
                # keep nans where they were
                data.X[nans] = float("nan")
        elif self.method == Normalize.Area:
            norm_data = Integrate(methods=self.int_method,
                                  limits=[[self.lower, self.upper]])(data)
            data.X /= norm_data.X
            replace_infs(data.X)
        elif self.method == Normalize.Attribute:
            if self.attr in data.domain and isinstance(
                    data.domain[self.attr], Orange.data.ContinuousVariable):
                ndom = Orange.data.Domain([data.domain[self.attr]])
                factors = data.transform(ndom)
                data.X /= factors.X
                replace_infs(data.X)
                nd = data.domain[self.attr]
            else:  # invalid attribute for normalization
                data.X *= float("nan")
        return data.X
    def transformed(self, data):
        if data.X.shape[0] == 0:
            return data.X
        data = data.copy()

        if self.method == Normalize.Vector:
            nans = np.isnan(data.X)
            nan_num = nans.sum(axis=1, keepdims=True)
            ys = data.X
            if np.any(nan_num > 0):
                # interpolate nan elements for normalization
                x = getx(data)
                ys = interp1d_with_unknowns_numpy(x, ys, x)
                ys = np.nan_to_num(ys)  # edge elements can still be zero
            data.X = sknormalize(ys, norm='l2', axis=1, copy=False)
            if np.any(nan_num > 0):
                # keep nans where they were
                data.X[nans] = float("nan")
        elif self.method == Normalize.Area:
            norm_data = Integrate(methods=self.int_method,
                                  limits=[[self.lower, self.upper]])(data)
            data.X /= norm_data.X
            replace_infs(data.X)
        elif self.method == Normalize.Attribute:
            if self.attr in data.domain and isinstance(data.domain[self.attr], Orange.data.ContinuousVariable):
                ndom = Orange.data.Domain([data.domain[self.attr]])
                factors = data.transform(ndom)
                data.X /= factors.X
                replace_infs(data.X)
                nd = data.domain[self.attr]
            else:  # invalid attribute for normalization
                data.X *= float("nan")
        return data.X
 def transformed(self, data):
     if len(data):
         ref_X = self.interpolate_extend_to(self.reference, getx(data))
         return replace_infs(
             np.angle(np.exp(data.X * 1j) / np.exp(ref_X * 1j)))
     else:
         return data
 def transformed(self, data):
     if self.reference is not None:
         # Calculate from single-channel data
         if len(data):  # numpy does not like to divide shapes (0, b) by (a, b)
             ref_X = self.interpolate_extend_to(self.reference, getx(data))
             transd = data.X / ref_X
         else:
             transd = data
     else:
         # Calculate from absorbance data
         transd = data.X.copy()
         transd *= -1
         np.power(10, transd, transd)
     # Replace infs from either np.true_divide or np.log10
     return replace_infs(transd)
 def transformed(self, data):
     if self.reference is not None:
         # Calculate from single-channel data
         ref_X = self.interpolate_extend_to(self.reference, getx(data))
         if len(data):  # numpy does not like to divide shapes (0, b) by (a, b)
             absd = ref_X / data.X
             np.log10(absd, absd)
         else:
             absd = data
     else:
         # Calculate from transmittance data
         absd = np.log10(data.X)
         absd *= -1
     # Replace infs from either np.true_divide or np.log10
     return replace_infs(absd)
Beispiel #6
0
 def transformed(self, data):
     if len(data):  # numpy does not like to divide shapes (0, b) by (a, b)
         ref_X = self.interpolate_extend_to(self.reference, getx(data))
         return replace_infs(data.X / ref_X)
     else:
         return data
 def transformed(self, data):
     if len(data):  # numpy does not like to divide shapes (0, b) by (a, b)
         ref_X = self.interpolate_extend_to(self.reference, getx(data))
         return replace_infs(data.X / ref_X)
     else:
         return data