@@ -59,7 +59,10 @@ def _apply_scipy_operation(
5959
6060 # Apply function with appropriate parameters
6161 if func_name == "uniform_filter1d" :
62- uniform = func (data .astype (float ), size = window , axis = axis , ** kwargs )
62+ # Only promote integer or boolean dtypes to float, preserve float/complex
63+ data_kind = data .dtype .kind
64+ data = data .astype (np .float64 ) if data_kind in {"i" , "b" , "u" } else data
65+ uniform = func (data , size = window , axis = axis , ** kwargs )
6366 if operation .lower () == "sum" :
6467 # For sum, uniform_filter1d computes mean, so we scale by window size
6568 uniform *= window
@@ -121,9 +124,8 @@ def _select_engine(preferred: str, operation: str) -> str:
121124 if preferred not in available :
122125 engine = available [0 ]
123126 msg = (
124- f"Cant use engine: { engine } for function: { operation } "
125- f"because preferred engine { preferred } is not available. It may "
126- "require an additional installation."
127+ f"Preferred engine { preferred } is not available; falling back to { engine } . "
128+ "It may require an additional installation."
127129 )
128130 warnings .warn (msg , UserWarning , stacklevel = 4 )
129131 preferred = engine
@@ -178,7 +180,7 @@ def moving_window(
178180 if window > data .shape [axis ]:
179181 msg = (
180182 f"Window size ({ window } ) larger than data size ({ data .shape [axis ]} ) "
181- f"along axis { axis } " ,
183+ f"along axis { axis } "
182184 )
183185 raise ParameterError (msg )
184186
0 commit comments