finite_max_val = np.max(finite_col)
finite_range_val = finite_max_val - finite_min_val
- if np.isclose(finite_range_val, 0.0):
+ if finite_range_val < 10 * np.finfo(float).eps:
if np.any(is_pos_inf_mask) and np.any(is_neg_inf_mask):
normalized_matrix[is_finite_mask, i] = 0.5
elif np.any(is_pos_inf_mask):
min_val = np.nanmin(arr)
max_val = np.nanmax(arr)
- if np.isclose(min_val, max_val):
+ range_val = max_val - min_val
+ if range_val < 10 * np.finfo(float).eps:
return [0.5 if np.isfinite(v) else np.nan for v in values]
- scaled_arr = (arr - min_val) / (max_val - min_val)
+ scaled_arr = (arr - min_val) / range_val
return scaled_arr.tolist()
def calculate_pivot_metrics(