v0.8.0
What's Changed
Major performance improvements!!!
-
Support numbagg through
engine="numbagg"
for many common nan-skipping reductions in #72. Using numbagg appears to be a major speedup (2x-3x in general, 6X for nanmean). Special thanks to @max-sixty for major work on numbagg's grouped aggregations! Here are timings for reducing a 2D array along the last axis with ordered group labels.func engine nansum flox 70.3±0.2ms numpy 122±0.2ms numbagg 18.4±0.04ms nanmean flox 144±0.4ms numpy 196±0.5ms numbagg 23.7±0.2ms nanmax flox 93.4±0.8ms numpy 953±2ms numbagg 20.3±0.2ms count flox 59.8±1ms numpy 114±0.2ms numbagg 29.3±0.1ms -
Support
engine=None
in #266. This will- Use
numbagg
if available - If not, use flox if the group labels are sorted
- Fallback to numpy otherwise.
Thanks to @mathause for kicking off this work.
- Use
-
Significant speed to detecting "cohorts" of groups in #272
Other Major Changes
- Test and support for python 3.12 (note numba does not support 3.12 yet)
- Bump minimum numpy version to 1.22.
- New Aggregations : Support
quantile
,median
,mode
withmethod="blockwise"
. by @dcherian in #269 - Add multidimensional bins demo notebook by @dcherian in #203 . This is useful for prediction/forecasting problems.
Minor Changes
- Delete resample_reduce by @dcherian in #246
- Fix test failure on i386 by @avalentino in #248
- typing fixes by @Illviljan in #235, #253
- replace the deprecated
provision-with-micromamba
withsetup-micromamba
by @keewis in #258 - compatibility with
numpy>=2.0
by @keewis in #257 - convert datetime: micro-optimizations by @mathause in #261
New Contributors
Full Changelog: v0.7.2...v0.8.0