Files
app-store-optimization/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/scikit-learn__scikit-learn-10508.patch

17 lines
937 B
Diff

Based on the issue description and error traceback, I can generate the fix. The problem is in `sklearn/preprocessing/label.py` at the `transform` method (around line 134). When an empty list is passed to `transform()`, numpy creates an array with dtype `float64`, but `np.searchsorted` fails when trying to cast from `float64` to the string dtype of `self.classes_`.
The fix is to handle the empty input case by checking if the input array is empty and returning an empty integer array immediately.
Here's the patch:
--- a/sklearn/preprocessing/label.py
+++ b/sklearn/preprocessing/label.py
@@ -128,6 +128,8 @@ class LabelEncoder(BaseEstimator, TransformerMixin):
"""
check_is_fitted(self, 'classes_')
y = column_or_1d(y, warn=True)
+ if len(y) == 0:
+ return np.array([], dtype=int)
classes = np.unique(y)
if len(np.intersect1d(classes, self.classes_)) < len(classes):