Skip to main content
awkward-array

Calculations with rectangular, numerical data are simpler and faster in Numpy than traditional for loops. Consider, for instance,

all_r = []
for x, y in zip(all_x, all_y):
    all_r.append(sqrt(x**2 + y**2))

versus

all_r = sqrt(all_x**2 + all_y**2)

Not only is the latter easier to read, it’s hundreds of times faster than the for loop (and provides opportunities for hidden vectorization and parallelization). However, the Numpy abstraction stops at rectangular arrays of numbers or character strings. While it’s possible to put arbitrary Python data in a Numpy array, Numpy’s dtype=object is essentially a fixed-length list: data are not contiguous in memory and operations are not vectorized.

Awkward Array is a pure Python+Numpy library for manipulating complex data structures as you would Numpy arrays. Even if your data structures

  • contain variable-length lists (jagged/ragged),

  • are deeply nested (record structure),

  • have different data types in the same list (heterogeneous),

  • are masked, bit-masked, or index-mapped (nullable),

  • contain cross-references or even cyclic references,

  • need to be Python class instances on demand,

  • are not defined at every point (sparse),

  • are not contiguous in memory,

  • should not be loaded into memory all at once (lazy),

this library can access them as columnar data structures, with the efficiency of Numpy arrays. They may be converted from JSON or Python data, loaded from “awkd” files, HDF5, Parquet, or ROOT files, or they may be views into memory buffers like Arrow.

Installation

Install Awkward Array like any other Python package:

pip install awkward0                      # maybe with sudo or --user, or in virtualenv

The base awkward0 package requires only Numpy (1.13.1+).

Metadata

Release files for awkward0 0.15.5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for awkward0 0.15.5
File Size Uploaded
awkward0-0.15.5.tar.gz 122.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for awkward0 0.15.5
File Interpreter ABI Platform
awkward0-0.15.5-py3-none-any.whl Python 3 none any Details

Total release size: 210.5 kB

Release files / awkward0-0.15.5.tar.gz

Download URL awkward0-0.15.5.tar.gz
Size 122.9 kB
Tags Source
SHA-256 checksum
How to use checksums
156e6e338c56d857a7bb53c4fcc8b0b2592a3470eff0d854e6d68777986359ad
BLAKE2b-256 checksum
How to use checksums
24b1dfffd68d87ef85e0898a1be32acff473d6dc841fd61b31131a271db5c3cf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/49.6.0.post20210108 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.8.6

Release files / awkward0-0.15.5-py3-none-any.whl

Download URL awkward0-0.15.5-py3-none-any.whl
Size 87.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
5fdaa3b29ea2426665215478b9b9199e991da5ab1f1f2996dcbfe848e08a40a1
BLAKE2b-256 checksum
How to use checksums
9ab3376b258ea021eed2c9bdaa1011e0f7b25365157de472d9fae8a2443d9ff5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/49.6.0.post20210108 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.8.6

Release history Release notifications | RSS feed

This release

0.15.5 This release

2 release files

0.15.3

2 release files

0.15.2

2 release files

0.15.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page