skillfed

awkward

Manipulate JSON-like data with NumPy-like idioms.

awkward v2.13.0 1.4M downloads/30d#3,917 on PyPI975
Permissive license BSD-3-Clause Active released

What it is and what it does

Awkward Array is a library for working with nested, variable-sized data—such as lists of records with mixed types, missing values, and arbitrary nesting depth—using NumPy-like syntax and performance. It bridges the gap between NumPy's speed (which assumes regular, rectangular arrays) and Python's flexibility for irregular structures. Operations are dynamically typed but compiled to machine code, so slicing, filtering, and applying functions across nested structures runs orders of magnitude faster than equivalent Python loops.

The library depends on numpy for core array operations, awkward-cpp for compiled kernels, and fsspec for optional file-system abstraction. It's designed for data science, physics, and information analysis workflows where data arrives in hierarchical or JSON-like formats. The package is actively maintained, supports current Python versions (3.10–3.14), and has no known security vulnerabilities.

Use it for:

  • Process particle physics event data with nested detector records and variable-length hit lists.
  • Transform JSON-like API responses into columnar arrays for fast aggregation and filtering.
  • Analyze time-series data with variable-length event sequences per entity without reshaping.
  • Perform NumPy-style operations on ragged arrays from scientific simulations or sensor networks.
  • Build data pipelines that preserve nested structure while applying vectorized transformations.

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

Awkward Array provides NumPy-like operations on nested, variable-sized data structures—lists, records, mixed types, and missing values—with compiled performance and dynamic typing.

Yes. Awkward Array is production-stable, actively maintained, has no security issues, and solves a real problem: fast operations on irregular nested data. Install it if your workflow involves JSON-like structures, ragged arrays, or hierarchical data that NumPy alone cannot handle efficiently. The low install friction and permissive license make it a low-risk addition.

Install

awkward on PyPI

pip

pip install awkward

uv

uv add awkward

poetry

poetry add awkward

Installing awkward

Before you install

Low friction: pure Python package with a precompiled C++ dependency (awkward-cpp) that ships as a wheel for common platforms. Active maintenance with a recent release and no known vulnerabilities.

License in practice

BSD-3-Clause is permissive; you may use, modify, and distribute this package freely in commercial and private projects, provided you include the license notice.

Quickstart

pip install awkward

import awkward as ak
import numpy as np

array = ak.Array([{"x": 1.1, "y": [1]}, {"x": 2.2, "y": [1, 2]}])
result = np.square(array["y", ..., 1:])

Requires Python 3.10 or later. If awkward-cpp wheels are unavailable for your platform, pip will attempt to build from source, requiring a C++ compiler.

Verify before relying

  • Whether fsspec integration is documented and what file-system operations it enables.
  • Performance characteristics on datasets larger than the 10 million-element example cited in the description.

Package facts

License BSD-3-Clause (permissive)
Python support supports the current Python release (>=3.10)
Install friction low — pure-Python wheel
Runtime dependencies 6 — awkward-cpp, fsspec, importlib-metadata, numpy, packaging, typing-extensions
Maintenance actively maintained — 0 days since the last release
Last repo commit
First released
Downloads 1,425,625/month — #3,917 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: awkward-2.13.0-py3-none-any.whl

Development Status :: 5 - Production/StableIntended Audience :: DevelopersIntended Audience :: Information TechnologyIntended Audience :: Science/ResearchOperating System :: MacOS :: MacOS XOperating System :: Microsoft :: WindowsOperating System :: POSIX :: LinuxOperating System :: UnixProgramming Language :: PythonProgramming Language :: Python :: 3Programming Language :: Python :: 3 :: OnlyProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Programming Language :: Python :: Free ThreadingProgramming Language :: Python :: Free Threading :: 3 - StableTopic :: Scientific/EngineeringTopic :: Scientific/Engineering :: Information AnalysisTopic :: Scientific/Engineering :: MathematicsTopic :: Scientific/Engineering :: PhysicsTopic :: Software DevelopmentTopic :: Utilities

Tags

nested array operationsvariable-length list processingjson-like data manipulationnumpy for irregular dataragged array libraryhierarchical data structurescompiled nested data
nested-datacolumnar-processingphysics-data

More Software Development packages