pypi numpy-groupies 0.14.0
v0.14.0

3 hours ago

Added

  • The numba implementation is assembled from njit-callable kernels: numpy_groupies.aggregate_numba.kernels exports one aggregate_* function per operation (aggregate_sum, aggregate_nansum, aggregate_median, ...), all callable from inside your own @numba.njit code (#118).
  • sort in the numba backend, reverse=True included (#120).
  • float16 input in the numba backend (#121). Numba has no float16 type, so the values are widened, the kernels run in their float32 plan and an inexact result is rounded back once - which puts cumsum and the other running aggregations closer to the exact value than the per-step float16 rounding of the numpy twin.
  • step_count and step_indices in the numpy backend (#112).

Changed

  • Integer mean/var/std accumulate in a dtype wide enough to stay exact, and the three backends now agree on where that boundary is - narrow integer groups no longer wrap silently (#115).
  • The benchmark scripts take an argparse CLI, and the pandas and ufunc comparison implementations live in the benchmarks only (#119).

Fixed

  • reverse=True did not produce a descending sort (#120).
  • Cumulative aggregations looked across group boundaries; complex cumulative NaNs now stay inside their group (#107) and the running aggregations are group independent (#116).
  • NumPy scalar dtype classes such as complex64 and float32 were not recognised by the dtype checks (#117).
  • Aggregating a numpy scalar (np.float32(2.5)) or a 0d array raised - TypingError in the numba implementation, TypeError in the pure python one (#122).
  • Wide integer sums could lose exactness in the numpy backend (#108).

Development

The test suite runs on one worker per core by default, which halves the CI jobs (#124); unsupported implementation/function combinations are deselected at collection time (#113, #114) and the parametrization labels name dtypes (float16, not <class 'numpy.float16'>) (#123).

Don't miss a new numpy-groupies release

NewReleases is sending notifications on new releases.