awkward0
Manipulate arrays of complex data structures as easily as Numpy.
What it is and what it does
Awkward Array is a pure Python and Numpy library that extends Numpy's vectorization capabilities to complex, non-rectangular data structures. While Numpy excels at operations on regular rectangular arrays, it struggles with variable-length lists, nested records, heterogeneous types, sparse data, or masked values—forcing users back to slow Python loops. Awkward Array bridges this gap by allowing you to manipulate these complex structures with the same efficient, vectorized syntax you'd use in Numpy, accessing data as columnar structures with memory efficiency comparable to Numpy arrays.
The library supports loading data from JSON, Python objects, HDF5, Parquet, ROOT files, or Arrow buffers, and can handle deeply nested hierarchies, cross-references, lazy loading, and on-demand Python class instantiation. However, this package (awkward0) is the legacy 0.x branch and has been abandoned since early 2021; it is no longer maintained and may have compatibility issues with modern Python and dependency versions.
Use it for:
- Process physics detector data or scientific measurements with variable-length event records and nested hierarchies efficiently.
- Convert JSON or nested Python data structures into columnar arrays for vectorized numerical operations.
- Load and manipulate Parquet or HDF5 files containing ragged or heterogeneous data without manual loop-based unpacking.
- Work with sparse or masked datasets where not all records have the same structure or completeness.
- Perform batch operations on lists of different lengths (e.g., variable-size batches in machine learning) using Numpy-like syntax.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Manipulates complex, non-rectangular data structures (jagged arrays, nested records, heterogeneous types, sparse or masked data) using Numpy-like vectorized operations instead of Python loops.
No. This package is abandoned (last commit 2021-02-08, repository archived) and superseded by the active awkward package. Installing awkward0 locks you into unmaintained code with no bug fixes or compatibility updates for modern Python and numpy versions. Use the current awkward package instead unless you have a specific legacy dependency constraint.
Install
awkward0 on PyPI
pip
pip install awkward0uv
uv add awkward0poetry
poetry add awkward0Installing awkward0
Before you install
Low friction installation with only numpy as a runtime dependency. However, the package is abandoned as of 2021-02-08 with no active maintenance; the repository is archived and last commit was over three years ago.
License in practice
BSD 3-clause permissive license allows commercial and private use with minimal restrictions, requiring only license and copyright notice retention.
Quickstart
pip install awkward0
import awkward as ak
import numpy as np
# Create jagged array from nested Python lists
data = ak.from_iter([[1, 2, 3], [4, 5], [6, 7, 8, 9]])
result = data * 2 # Vectorized operation across variable-length sublists
Requires numpy 1.13.1 or later; package is abandoned and may have compatibility issues with modern Python versions beyond 3.9.
Verify before relying
- Whether awkward0 0.15.5 works reliably with Python versions released after 3.9 or modern numpy versions.
- Whether the successor package (awkward, not awkward0) should be used instead for new projects.
- Performance characteristics and memory efficiency compared to modern alternatives for specific use cases.
Package facts
| License | BSD 3-clause (permissive) |
| Python support | not specified |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 1 — numpy |
| Maintenance | abandoned — 2,013 days since the last release |
| Last repo commit | (repository archived) |
| First released | |
| Downloads | 282,122/month — #8,088 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: awkward0-0.15.5-py3-none-any.whl
Tags
More Software Development packages
Provides backported and experimental type hints…
permissive · top 100 on PyPI
numpyNumPy provides an N-dimensional array object…
permissive · top 100 on PyPI
fastapiFastAPI is a Python web framework for building…
permissive · top 100 on PyPI
annotated-docProvides a way to document function parameters,…
permissive · top 100 on PyPI
typerTyper builds command-line applications from…
permissive · top 1,000 on PyPI
distlibDistlib provides low-level packaging utilities…
permissive · top 1,000 on PyPI
awkwardAwkward Array provides NumPy-like operations on…
permissive · top 5,000 on PyPI
awkward-pandasExtends pandas DataFrames to store and…
permissive · top 15,000 on PyPI
fastremapRemap, renumber, and relabel NumPy arrays at…
copyleft · top 15,000 on PyPI
tiledbTileDB-Py provides a Python interface to the…
permissive · top 15,000 on PyPI
dask-awkwardDask-awkward integrates Awkward Array with Dask…
permissive · top 15,000 on PyPI
awkward-cppProvides compiled C++ kernels and extensions…
permissive · top 5,000 on PyPI
vectorVector provides 2D, 3D, and 4D space-time…
permissive · top 15,000 on PyPI
ndindexndindex provides a uniform API for representing…
permissive · top 5,000 on PyPI
array-recordArrayRecord is a file format for storing and…
permissive · top 5,000 on PyPI
vortex-dataVortex-data provides Python bindings to work…
permissive · top 15,000 on PyPI