Skip to content

Manipulate JSON-like data with NumPy-like idioms.

License

Notifications You must be signed in to change notification settings

Ellipse0934/awkward-1.0

 
 

Repository files navigation

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.

How-to documentation
for data analysts

How-it-works tutorials
for developers

C++
API reference

Python
API reference

Installation

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.

Installation for developers

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.

Using Awkward Array as a dependency

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.

Papers and talks about Awkward Array

About

Manipulate JSON-like data with NumPy-like idioms.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 46.8%
  • Python 33.2%
  • Jupyter Notebook 17.0%
  • C 2.8%
  • CMake 0.2%
  • HTML 0.0%