diff --git a/src/preprocessing/spectral_Preprocessing.py b/src/preprocessing/spectral_Preprocessing.py index 1b05560..64b7f9e 100644 --- a/src/preprocessing/spectral_Preprocessing.py +++ b/src/preprocessing/spectral_Preprocessing.py @@ -502,11 +502,15 @@ class PhysicalFeatureExtractor(TransformerMixin, BaseEstimator, _ArrayAsFloat64) a = X[:, ia]; b = X[:, ib] if ftype == 'ratio': denom = a + b - denom = np.where(np.abs(denom) < 1e-12, 1e-12, denom) - feats.append(((a - b) / denom).reshape(-1, 1)) + valid = np.abs(denom) >= 1e-10 + vals = np.zeros_like(a, dtype=np.float64) + vals[valid] = (a[valid] - b[valid]) / denom[valid] + feats.append(vals.reshape(-1, 1)) else: # ratio_single - denom = np.where(np.abs(b) < 1e-12, 1e-12, b) - feats.append((a / denom).reshape(-1, 1)) + valid = np.abs(b) >= 1e-10 + vals = np.zeros_like(a, dtype=np.float64) + vals[valid] = a[valid] / b[valid] + feats.append(vals.reshape(-1, 1)) out = np.hstack(feats) out = np.nan_to_num(out, nan=0.0, posinf=0.0, neginf=0.0) out = np.clip(out, -1e15, 1e15)