Awkward Array is a library for nested, variable-sized data, including arbitrary-length lists, records, mixed types, and missing data, using NumPy-like idioms.
Arrays are dynamically typed, but operations on them are compiled and fast. Their behavior coincides with NumPy when array dimensions are regular and generalizes when they're not.
Awkward Array can be installed from PyPI using pip:
pip install awkward1
Most users will get a precompiled binary (wheel) for your operating system and Python version. If not, the above attempts to compile from source.
Be sure to clone this repository recursively to get the header-only C++ dependencies.
git clone --recursive https://github.com/scikit-hep/awkward-1.0.git
You can install it on your system with pip, which uses exactly the same procedure as deployment:
pip install .[test,dev]
Or you can build it locally for incremental development. The following reuses a local directory so that you only recompile what you've changed:
python localbuild.py --pytest tests
Continuous integration and continuous deployment are hosted by Azure Pipelines.
Python projects can simply import awkward1
.
C++ projects can link against the shared libraries libawkward-cpu-kernels.so
and libawkward.so
or their static library equivalents. These libraries are shipped, along with the include files, as part of pip's installation.
See the dependent-project directory for examples.
- The original motivations document from July 2019, now a little out-of-date.
- My StrangeLoop talk on September 14, 2019.
- My PyHEP talk on October 17, 2019.
- My CHEP talk on November 7, 2019.
- My CHEP 2019 proceedings (to be published in EPJ Web of Conferences).
- Demo for Coffea developers on December 20, 2019.
- Demo for Numba developers on January 22, 2020.
- A summary poster that I presented on February 27, 2020.