awkward
Manipulate JSON-like data with NumPy-like idioms.
Decision gist · record as of 2026-08-14
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.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- 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.
- Low friction: pure Python package with a precompiled C++ dependency (awkward-cpp) that ships as a wheel for common platforms.
License · maintenance · safety
BSD-3-Clause (permissive) — 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.
last release 2026-08-14 (0 days) · last repo commit 2026-08-14 · 975 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 1,425,625 downloads/mo, #3,917 on PyPI
Alternatives
Verify before relying
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:])- 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.
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 on it.
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
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.
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.
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:])
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 packagesawkward-cppfsspecimportlib-metadatanumpypackagingtyping-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 |
| Classifiers | 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 |
Evidence: awkward-2.13.0-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “nested array operations”
- awkwardAwkward Array provides NumPy-like operations on nested,…
- awkward-cppProvides compiled C++ kernels and extensions that accelerate…
- awkward-pandasExtends pandas DataFrames to store and manipulate Awkward Array…
Give your agent the search over MCP, or paste the wish link into any chat.
More Software Development packages
Provides backported and experimental type hints for Python 3.9+, allowing use of newer typing features on older Python versions and enabling early experimentation with type system PEPs before they enter the standard library.
NumPy provides an N-dimensional array object and a comprehensive suite of mathematical, linear algebra, Fourier transform, and random number functions for scientific computing in Python.
FastAPI is a Python web framework for building REST APIs using type hints, with automatic request validation, serialization, and interactive API documentation.
Provides a way to document function parameters, class attributes, return types, and variables inline using Python's `Annotated` type hint syntax instead of traditional docstrings.
Typer builds command-line applications from Python functions using type hints, automatically generating help text, argument parsing, and shell completion.
Install it if you are building CLIs in Python.
Distlib provides low-level packaging utilities for building, distributing, and managing Python software—including metadata handling, version specifiers, wheel support, script installation, and dependency resolution.
See also awkward-cpp · awkward-pandas · awkward0 · dask-awkward · ncls · json-normalize · snuggs · tiledb · mo-dots · flatdict