A greenhouse sensor reports [temperature_c, humidity_percent] every hour. Most hours look alike; a faulty hour sits far away from the rest. You want DBSCAN to mark those hours as noise.
Temperature and humidity are in different units, so scale them first.
Task: write odd_hours(readings, eps, min_samples).
StandardScaler().fit_transform(...).DBSCAN(eps=eps, min_samples=min_samples) on the scaled data.-1, from smallest to largest, as plain ints.If nothing is noise, return an empty list.