diff --git a/src/evidently/legacy/calculations/stattests/utils.py b/src/evidently/legacy/calculations/stattests/utils.py index 1957632451..a4a1765742 100644 --- a/src/evidently/legacy/calculations/stattests/utils.py +++ b/src/evidently/legacy/calculations/stattests/utils.py @@ -42,20 +42,12 @@ def get_binned_data( current_percents = np.array([current_feature_dict[key] / len(current_data) for key in keys]) if feel_zeroes: - np.place( - reference_percents, - reference_percents == 0, - min(reference_percents[reference_percents != 0]) / 10**6 - if min(reference_percents[reference_percents != 0]) <= 0.0001 - else 0.0001, - ) - np.place( - current_percents, - current_percents == 0, - min(current_percents[current_percents != 0]) / 10**6 - if min(current_percents[current_percents != 0]) <= 0.0001 - else 0.0001, - ) + ref_nonzero = reference_percents[reference_percents != 0] + cur_nonzero = current_percents[current_percents != 0] + if len(ref_nonzero) > 0: + np.place(reference_percents, reference_percents == 0, min(ref_nonzero) / 10) + if len(cur_nonzero) > 0: + np.place(current_percents, current_percents == 0, min(cur_nonzero) / 10) return reference_percents, current_percents diff --git a/src/evidently/legacy/spark/calculations/stattests/utils.py b/src/evidently/legacy/spark/calculations/stattests/utils.py index e43ab40194..2b2e1b31be 100644 --- a/src/evidently/legacy/spark/calculations/stattests/utils.py +++ b/src/evidently/legacy/spark/calculations/stattests/utils.py @@ -52,19 +52,11 @@ def get_binned_data( current_percents = current_percents / current_percents.sum() if fill_zeroes: - np.place( - reference_percents, - reference_percents == 0, - min(reference_percents[reference_percents != 0]) / 10**6 - if min(reference_percents[reference_percents != 0]) <= 0.0001 - else 0.0001, - ) - np.place( - current_percents, - current_percents == 0, - min(current_percents[current_percents != 0]) / 10**6 - if min(current_percents[current_percents != 0]) <= 0.0001 - else 0.0001, - ) + ref_nonzero = reference_percents[reference_percents != 0] + cur_nonzero = current_percents[current_percents != 0] + if len(ref_nonzero) > 0: + np.place(reference_percents, reference_percents == 0, min(ref_nonzero) / 10) + if len(cur_nonzero) > 0: + np.place(current_percents, current_percents == 0, min(cur_nonzero) / 10) return reference_percents, current_percents