Published June 8, 2026 | Version v2.9.1
Software Open

Awkward Array

  • 1. Princeton University
  • 2. Manipal Institute Of Technology
  • 3. Purdue University
  • 4. National Institute of Technology, Durgapur
  • 5. Fermilab
  • 6. Harvard University
  • 7. Rice University

Description

New features

  • feat: improve and test big-endian support by @ikrommyd in https://github.com/scikit-hep/awkward/pull/3676
  • feat: implement array compatibility/interface protocols for virtual array and placeholder array (for better errors) by @ikrommyd in https://github.com/scikit-hep/awkward/pull/3839
  • feat: reimplement reducers kernels using cccl by @maxymnaumchyk in https://github.com/scikit-hep/awkward/pull/3840
  • feat: implement byteswap as an nplike function by @aashirvad08 in https://github.com/scikit-hep/awkward/pull/3845
  • feat: lazy parents allocation by @ianna in https://github.com/scikit-hep/awkward/pull/3860
  • feat: extend Python reducers with offset support (precursor to parent removal) by @ianna in https://github.com/scikit-hep/awkward/pull/3865
  • feat: pass 'offsets' to reducer kernels (precursor to parent removal) by @maxymnaumchyk in https://github.com/scikit-hep/awkward/pull/3883
  • feat: reducer max for axis==None by @ianna in https://github.com/scikit-hep/awkward/pull/3884
  • feat: improve and fix delayed length calculations and add delayed length calculation for layouts that need it by @ikrommyd in https://github.com/scikit-hep/awkward/pull/3889
  • feat: pickle in native byteorder and pass byteorder through pickling and unpickling by @ikrommyd in https://github.com/scikit-hep/awkward/pull/3893
  • feat: customly overload the reducers that call cuda-compute kernels by @maxymnaumchyk in https://github.com/scikit-hep/awkward/pull/3894
  • feat: add axis=None specialization for Min reducer + small refactoring for existing specializatons by @ikrommyd in https://github.com/scikit-hep/awkward/pull/3896
  • feat: cuda.compute combinations kernel study by @ianna in https://github.com/scikit-hep/awkward/pull/3908
  • feat: add missing_repeat kernel implementation using cuda.compute by @maxymnaumchyk in https://github.com/scikit-hep/awkward/pull/3922
  • feat: add index_rpad_and_clip kernels implementations using cuda.compute by @maxymnaumchyk in https://github.com/scikit-hep/awkward/pull/3923
  • feat: allow generator expressions in highlevel operations that accept iterable of arrays as input by @ikrommyd in https://github.com/scikit-hep/awkward/pull/3938
  • feat: add awkward.* aliases to objects.inv for intersphinx by @TaiSakuma in https://github.com/scikit-hep/awkward/pull/3958
  • feat: properly handle numpy functions that return default containers of numpy arrays in __array_function__ by @ikrommyd in https://github.com/scikit-hep/awkward/pull/3991
  • feat: lazy concatenation of virtual arrays by @ikrommyd in https://github.com/scikit-hep/awkward/pull/4010
  • feat: migrate awkward_index_rpad_and_clip_axis0 to cuda.compute by @danielfrg in https://github.com/scikit-hep/awkward/pull/4012
  • feat: migrate awkward_reduce_sum_complex to cuda.compute by @danielfrg in https://github.com/scikit-hep/awkward/pull/4016
  • feat: migrate awkward_reduce_max_complex to cuda.compute by @danielfrg in https://github.com/scikit-hep/awkward/pull/4018

Bug-fixes and performance

  • fix: temporarily use unary_transform instead of segmented_reduce by @maxymnaumchyk in https://github.com/scikit-hep/awkward/pull/3814
  • fix: C++ errors in ak.from_rdataframe by @bendavid in https://github.com/scikit-hep/awkward/pull/3851
  • fix: Fix multiple CUDA out-of-bounds accesses and kernel memory management issues by @ianna in https://github.com/scikit-hep/awkward/pull/3858
  • fix: harden CUDA/CPU kernels against out-of-bounds writes in ListOffsetArray by @ianna in https://github.com/scikit-hep/awkward/pull/3859
  • fix: add offsets for UnmaskedArray reducer by @ianna in https://github.com/scikit-hep/awkward/pull/3874
  • fix: GrowableBuffer cleanup compiler warnings by @ianna in https://github.com/scikit-hep/awkward/pull/3881
  • fix: fix typetracer's maximum implementation by @ikrommyd in https://github.com/scikit-hep/awkward/pull/3895
  • fix: fix ASAN detected buffer overflows in awkward-cpp by @ikrommyd in https://github.com/scikit-hep/awkward/pull/3898
  • fix: Numba-CUDA refactoring -- CUDATargetContext is spinned off to FunctionDescriptor by @ianna in https://github.com/scikit-hep/awkward/pull/3902
  • fix: return shallow copy of fields list when .fields is being accessed from highlevel array/record by @ikrommyd in https://github.com/scikit-hep/awkward/pull/3906
  • fix: handle union array simplification returning back indexed arrays in ak.almost_equal by @ikrommyd in https://github.com/scikit-hep/awkward/pull/3909
  • fix: ak.array_equal with datetimes and timedeltas with NaTs by @ikrommyd in https://github.com/scikit-hep/awkward/pull/3921
  • fix: consistent byteorder settings by @ikrommyd in https://github.com/scikit-hep/awkward/pull/3954
  • fix: couple of fixes in tests that arose from running them in parallel threads by @ikrommyd in https://github.com/scikit-hep/awkward/pull/3961
  • fix: proper comparison in ak.almost_equal between record array fields by @ikrommyd in https://github.com/scikit-hep/awkward/pull/3962
  • fix: restore docstring cross-references lost in autoapi migration by @TaiSakuma in https://github.com/scikit-hep/awkward/pull/3972
  • fix: race condition in record array CUDA kernel by @ianna in https://github.com/scikit-hep/awkward/pull/3982
  • fix: ensure jax backend uses arrays on cpu only by @ikrommyd in https://github.com/scikit-hep/awkward/pull/3990
  • fix: array attrs not being validated at creation and being of inconsistent type by @ikrommyd in https://github.com/scikit-hep/awkward/pull/3996
  • perf: optimize CPU kernels and fix segfault when concatenating arrays with None values by @ianna in https://github.com/scikit-hep/awkward/pull/3875
  • perf: restructure CUDA unit tests by @ianna in https://github.com/scikit-hep/awkward/pull/3935

Other

  • chore: ignore jax deprecation warning in pytest by @ikrommyd in https://github.com/scikit-hep/awkward/pull/3864
  • chore: Update Python version from 3.10 to 3.14 in ROOT workflow by @ianna in https://github.com/scikit-hep/awkward/pull/3876
  • chore: pin ROOT to 6.36.06 in workflow by @ianna in https://github.com/scikit-hep/awkward/pull/3886
  • chore: Increase coverage target from 20% to 98% by @ianna in https://github.com/scikit-hep/awkward/pull/3897
  • chore: update pre-commit hooks by @pre-commit-ci[bot] in https://github.com/scikit-hep/awkward/pull/3900
  • chore: delete nvidia channel from GPU ci as it is outdated by @ikrommyd in https://github.com/scikit-hep/awkward/pull/3903
  • chore: upgrade hypothesis-awkward to >=0.10 by @TaiSakuma in https://github.com/scikit-hep/awkward/pull/3936
  • chore: pin hypothesis-awkward to exact version by @TaiSakuma in https://github.com/scikit-hep/awkward/pull/3942
  • chore: update pre-commit hooks by @pre-commit-ci[bot] in https://github.com/scikit-hep/awkward/pull/3951
  • chore: prepare for numpy 2.5 compatibility by @ikrommyd in https://github.com/scikit-hep/awkward/pull/3976
  • chore: update pre-commit hooks by @pre-commit-ci[bot] in https://github.com/scikit-hep/awkward/pull/3993
  • chore: Use kw-only arguments in all cuda.compute invocations by @shwina in https://github.com/scikit-hep/awkward/pull/3994
  • chore: bump hypothesis-awkward from 0.16.0 to 0.18.0 by @TaiSakuma in https://github.com/scikit-hep/awkward/pull/3995
  • chore: update pre-commit hooks by @pre-commit-ci[bot] in https://github.com/scikit-hep/awkward/pull/4076
  • chore(ci): harden ci config by @ariostas in https://github.com/scikit-hep/awkward/pull/4075
  • chore(deps): bump aws-actions/configure-aws-credentials from 5 to 6 in the actions group by @dependabot[bot] in https://github.com/scikit-hep/awkward/pull/3857
  • chore(deps): bump the actions group with 3 updates by @dependabot[bot] in https://github.com/scikit-hep/awkward/pull/3899
  • chore(deps): bump pypa/cibuildwheel from 3.3 to 3.4 in the actions group by @dependabot[bot] in https://github.com/scikit-hep/awkward/pull/3905
  • chore(deps): bump the actions group across 1 directory with 3 updates by @dependabot[bot] in https://github.com/scikit-hep/awkward/pull/3940
  • chore(deps): bump hypothesis-awkward from 0.10.0 to 0.12.0 by @dependabot[bot] in https://github.com/scikit-hep/awkward/pull/3945
  • chore(deps): bump hypothesis-awkward from 0.12.0 to 0.13.0 by @dependabot[bot] in https://github.com/scikit-hep/awkward/pull/3952
  • chore(deps): bump pypa/gh-action-pypi-publish from 1.13.0 to 1.14.0 in the actions group by @dependabot[bot] in https://github.com/scikit-hep/awkward/pull/3963
  • chore(deps): bump hypothesis-awkward from 0.13.0 to 0.14.0 by @dependabot[bot] in https://github.com/scikit-hep/awkward/pull/3968
  • chore(deps): bump hypothesis-awkward from 0.14.0 to 0.15.0 by @dependabot[bot] in https://github.com/scikit-hep/awkward/pull/3974
  • chore(deps): bump the actions group with 2 updates by @dependabot[bot] in https://github.com/scikit-hep/awkward/pull/3979
  • chore(deps): bump hypothesis-awkward from 0.15.0 to 0.16.0 by @dependabot[bot] in https://github.com/scikit-hep/awkward/pull/3984
  • chore(deps): bump the actions group with 2 updates by @dependabot[bot] in https://github.com/scikit-hep/awkward/pull/3987
  • chore(deps): bump aws-actions/configure-aws-credentials from 6.1.1 to 6.1.3 in the actions group by @dependabot[bot] in https://github.com/scikit-hep/awkward/pull/4077
  • ci: windows ARM build by @henryiii in https://github.com/scikit-hep/awkward/pull/3855
  • ci: remove xfail from tests that work with cupy 14, pin cupy >= 14 in CI, and split cuda tests with virtual arrays in a separate CI task by @ikrommyd in https://github.com/scikit-hep/awkward/pull/3890
  • ci: use self-hosted CI for codecov by @ariostas in https://github.com/scikit-hep/awkward/pull/3901
  • ci: fix issues with self-hosted CI by @ariostas in https://github.com/scikit-hep/awkward/pull/3933
  • ci: add dependabot config for hypothesis-awkward by @TaiSakuma in https://github.com/scikit-hep/awkward/pull/3944
  • ci: use reusable workflows by @ariostas in https://github.com/scikit-hep/awkward/pull/3969
  • ci: bump setup-uv to maintained tag scheme by @henryiii in https://github.com/scikit-hep/awkward/pull/3970
  • ci: fix some issues with reusable workflows by @ariostas in https://github.com/scikit-hep/awkward/pull/3983
  • ci: fix build wheels workflow by @ariostas in https://github.com/scikit-hep/awkward/pull/4074
  • docs: Add an example argmax reducer using cccl by @maxymnaumchyk in https://github.com/scikit-hep/awkward/pull/3763
  • docs: remove colour in intro cards by @agoose77 in https://github.com/scikit-hep/awkward/pull/3926
  • docs: update ak.flatten docstring to Google style by @TaiSakuma in https://github.com/scikit-hep/awkward/pull/3946
  • docs: replace prepare_docstrings.py with sphinx-autoapi by @TaiSakuma in https://github.com/scikit-hep/awkward/pull/3948
  • docs: add :: to docstrings for proper RST code blocks by @TaiSakuma in https://github.com/scikit-hep/awkward/pull/3965
  • docs: show private members in autoapi-generated docs by @TaiSakuma in https://github.com/scikit-hep/awkward/pull/3966
  • docs: add summary lines to 13 structural operation docstrings by @TaiSakuma in https://github.com/scikit-hep/awkward/pull/3986
  • test: introduce property-based testing with to_buffers/from_buffers roundtrip by @TaiSakuma in https://github.com/scikit-hep/awkward/pull/3887
  • test: add property-based tests for ak.array_equal by @TaiSakuma in https://github.com/scikit-hep/awkward/pull/3891
  • test: add cuda testing for ak.nan_to_num by @ikrommyd in https://github.com/scikit-hep/awkward/pull/3892

New Contributors

  • @bendavid made their first contribution in https://github.com/scikit-hep/awkward/pull/3851
  • @danielfrg made their first contribution in https://github.com/scikit-hep/awkward/pull/4012

Full Changelog: https://github.com/scikit-hep/awkward/compare/v2.9.0...v2.9.1

Notes

If you use this software, please cite it as below.

Files

scikit-hep/awkward-v2.9.1.zip

Files (7.8 MB)

Name Size Download all
md5:0fe8e02dab61ba457b268805c1924d94
7.8 MB Preview Download

Additional details

Related works