Name | awkward JSON |
Version |
2.7.4
JSON |
| download |
home_page | None |
Summary | Manipulate JSON-like data with NumPy-like idioms. |
upload_time | 2025-01-31 14:28:44 |
maintainer | None |
docs_url | None |
author | None |
requires_python | >=3.9 |
license | BSD-3-Clause |
keywords |
|
VCS |
 |
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
<a href="https://github.com/scikit-hep/awkward-1.0">
<img src="https://github.com/scikit-hep/awkward-1.0/raw/main/docs-img/logo/logo-300px.png">
</a>
[](https://pypi.org/project/awkward)
[](https://github.com/conda-forge/awkward-feedstock)
[](https://www.python.org)
[](https://opensource.org/licenses/BSD-3-Clause)
[](https://github.com/scikit-hep/awkward/actions/workflows/test.yml)
[](https://scikit-hep.org/)
[](https://nsf.gov/awardsearch/showAward?AWD_ID=1836650)
[](https://doi.org/10.5281/zenodo.4341376)
[](https://awkward-array.org/)
[](https://gitter.im/Scikit-HEP/awkward-array)
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.
# Motivating example
Given an array of lists of objects with `x`, `y` fields (with nested lists in the `y` field),
```python
import awkward as ak
array = ak.Array([
[{"x": 1.1, "y": [1]}, {"x": 2.2, "y": [1, 2]}, {"x": 3.3, "y": [1, 2, 3]}],
[],
[{"x": 4.4, "y": [1, 2, 3, 4]}, {"x": 5.5, "y": [1, 2, 3, 4, 5]}]
])
```
the following slices out the `y` values, drops the first element from each inner list, and runs NumPy's `np.square` function on everything that is left:
```python
output = np.square(array["y", ..., 1:])
```
The result is
```python
[
[[], [4], [4, 9]],
[],
[[4, 9, 16], [4, 9, 16, 25]]
]
```
The equivalent using only Python is
```python
output = []
for sublist in array:
tmp1 = []
for record in sublist:
tmp2 = []
for number in record["y"][1:]:
tmp2.append(np.square(number))
tmp1.append(tmp2)
output.append(tmp1)
```
The expression using Awkward Arrays is more concise, using idioms familiar from NumPy, and it also has NumPy-like performance. For a similar problem 10 million times larger than the one above (single-threaded on a 2.2 GHz processor),
* the Awkward Array one-liner takes **1.5 seconds** to run and uses **2.1 GB** of memory,
* the equivalent using Python lists and dicts takes **140 seconds** to run and uses **22 GB** of memory.
Awkward Array is even faster when used in [Numba](https://numba.pydata.org/)'s JIT-compiled functions.
See the [Getting started](https://awkward-array.org/doc/main/getting-started/index.html) documentation on [awkward-array.org](https://awkward-array.org) for an introduction, including a [no-install demo](https://awkward-array.org/doc/main/getting-started/try-awkward-array.html) you can try in your web browser.
# Getting help
* View the documentation on [awkward-array.org](https://awkward-array.org/).
* Report bugs, request features, and ask for additional documentation on [GitHub Issues](https://github.com/scikit-hep/awkward/issues).
* If you have a "How do I...?" question, start a [GitHub Discussion](https://github.com/scikit-hep/awkward/discussions) with category "Q&A".
* Alternatively, ask about it on [StackOverflow with the [awkward-array] tag](https://stackoverflow.com/questions/tagged/awkward-array). Be sure to include tags for any other libraries that you use, such as Pandas or PyTorch.
* To ask questions in real time, try the Gitter [Scikit-HEP/awkward-array](https://gitter.im/Scikit-HEP/awkward-array) chat room.
# Installation
Awkward Array can be installed from [PyPI](https://pypi.org/project/awkward) using pip:
```bash
pip install awkward
```
The `awkward` package is pure Python, and it will download the `awkward-cpp` compiled components as a dependency. If there is no `awkward-cpp` binary package (wheel) for your platform and Python version, pip will attempt to compile it from source (which has additional dependencies, such as a C++ compiler).
Awkward Array is also available on [conda-forge](https://conda-forge.org/docs/user/introduction.html#how-can-i-install-packages-from-conda-forge):
```bash
conda install -c conda-forge awkward
```
Raw data
{
"_id": null,
"home_page": null,
"name": "awkward",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.9",
"maintainer_email": null,
"keywords": null,
"author": null,
"author_email": "Jim Pivarski <jpivarski@gmail.com>",
"download_url": "https://files.pythonhosted.org/packages/32/c3/55098d3fcaed43cb840ff1ee50d4f478f11525f83d33e434d310eb80e45e/awkward-2.7.4.tar.gz",
"platform": null,
"description": "<a href=\"https://github.com/scikit-hep/awkward-1.0\">\n <img src=\"https://github.com/scikit-hep/awkward-1.0/raw/main/docs-img/logo/logo-300px.png\">\n</a>\n\n\n[](https://pypi.org/project/awkward)\n[](https://github.com/conda-forge/awkward-feedstock)\n[](https://www.python.org)\n[](https://opensource.org/licenses/BSD-3-Clause)\n[](https://github.com/scikit-hep/awkward/actions/workflows/test.yml)\n\n[](https://scikit-hep.org/)\n[](https://nsf.gov/awardsearch/showAward?AWD_ID=1836650)\n[](https://doi.org/10.5281/zenodo.4341376)\n[](https://awkward-array.org/)\n[](https://gitter.im/Scikit-HEP/awkward-array)\n\nAwkward Array is a library for **nested, variable-sized data**, including arbitrary-length lists, records, mixed types, and missing data, using **NumPy-like idioms**.\n\nArrays 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.\n\n# Motivating example\n\nGiven an array of lists of objects with `x`, `y` fields (with nested lists in the `y` field),\n\n```python\nimport awkward as ak\n\narray = ak.Array([\n [{\"x\": 1.1, \"y\": [1]}, {\"x\": 2.2, \"y\": [1, 2]}, {\"x\": 3.3, \"y\": [1, 2, 3]}],\n [],\n [{\"x\": 4.4, \"y\": [1, 2, 3, 4]}, {\"x\": 5.5, \"y\": [1, 2, 3, 4, 5]}]\n])\n```\n\nthe following slices out the `y` values, drops the first element from each inner list, and runs NumPy's `np.square` function on everything that is left:\n\n```python\noutput = np.square(array[\"y\", ..., 1:])\n```\n\nThe result is\n\n```python\n[\n [[], [4], [4, 9]],\n [],\n [[4, 9, 16], [4, 9, 16, 25]]\n]\n```\n\nThe equivalent using only Python is\n\n```python\noutput = []\nfor sublist in array:\n tmp1 = []\n for record in sublist:\n tmp2 = []\n for number in record[\"y\"][1:]:\n tmp2.append(np.square(number))\n tmp1.append(tmp2)\n output.append(tmp1)\n```\n\nThe expression using Awkward Arrays is more concise, using idioms familiar from NumPy, and it also has NumPy-like performance. For a similar problem 10 million times larger than the one above (single-threaded on a 2.2 GHz processor),\n\n * the Awkward Array one-liner takes **1.5 seconds** to run and uses **2.1 GB** of memory,\n * the equivalent using Python lists and dicts takes **140 seconds** to run and uses **22 GB** of memory.\n\nAwkward Array is even faster when used in [Numba](https://numba.pydata.org/)'s JIT-compiled functions.\n\nSee the [Getting started](https://awkward-array.org/doc/main/getting-started/index.html) documentation on [awkward-array.org](https://awkward-array.org) for an introduction, including a [no-install demo](https://awkward-array.org/doc/main/getting-started/try-awkward-array.html) you can try in your web browser.\n\n# Getting help\n\n * View the documentation on [awkward-array.org](https://awkward-array.org/).\n * Report bugs, request features, and ask for additional documentation on [GitHub Issues](https://github.com/scikit-hep/awkward/issues).\n * If you have a \"How do I...?\" question, start a [GitHub Discussion](https://github.com/scikit-hep/awkward/discussions) with category \"Q&A\".\n * Alternatively, ask about it on [StackOverflow with the [awkward-array] tag](https://stackoverflow.com/questions/tagged/awkward-array). Be sure to include tags for any other libraries that you use, such as Pandas or PyTorch.\n * To ask questions in real time, try the Gitter [Scikit-HEP/awkward-array](https://gitter.im/Scikit-HEP/awkward-array) chat room.\n\n# Installation\n\nAwkward Array can be installed from [PyPI](https://pypi.org/project/awkward) using pip:\n\n```bash\npip install awkward\n```\n\nThe `awkward` package is pure Python, and it will download the `awkward-cpp` compiled components as a dependency. If there is no `awkward-cpp` binary package (wheel) for your platform and Python version, pip will attempt to compile it from source (which has additional dependencies, such as a C++ compiler).\n\nAwkward Array is also available on [conda-forge](https://conda-forge.org/docs/user/introduction.html#how-can-i-install-packages-from-conda-forge):\n\n```bash\nconda install -c conda-forge awkward\n```\n\n",
"bugtrack_url": null,
"license": "BSD-3-Clause",
"summary": "Manipulate JSON-like data with NumPy-like idioms.",
"version": "2.7.4",
"project_urls": {
"Bug Tracker": "https://github.com/scikit-hep/awkward-1.0/issues",
"Chat": "https://gitter.im/Scikit-HEP/awkward-array",
"Discussions": "https://github.com/scikit-hep/awkward-1.0/discussions",
"Documentation": "https://awkward-array.org",
"Homepage": "https://github.com/scikit-hep/awkward-1.0",
"Releases": "https://github.com/scikit-hep/awkward-1.0/releases",
"Source Code": "https://github.com/scikit-hep/awkward-1.0"
},
"split_keywords": [],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "f173c5cb2c7384d81270681d2f9309c973769fed757770caab887489d0207fb4",
"md5": "a600e26eaf4849f87304dc2459d24c73",
"sha256": "3b3c40fae0ff7cd184d967770e6b3fc29e947c399c027c2bc72b9315c1144513"
},
"downloads": -1,
"filename": "awkward-2.7.4-py3-none-any.whl",
"has_sig": false,
"md5_digest": "a600e26eaf4849f87304dc2459d24c73",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.9",
"size": 871373,
"upload_time": "2025-01-31T14:28:42",
"upload_time_iso_8601": "2025-01-31T14:28:42.717254Z",
"url": "https://files.pythonhosted.org/packages/f1/73/c5cb2c7384d81270681d2f9309c973769fed757770caab887489d0207fb4/awkward-2.7.4-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "32c355098d3fcaed43cb840ff1ee50d4f478f11525f83d33e434d310eb80e45e",
"md5": "06001351c0dac5580360bda3a7a86ddf",
"sha256": "e79b4bfd68b2030123b4bb67d5179f92c7e9bede1dadc5a1416fce0acb6cc975"
},
"downloads": -1,
"filename": "awkward-2.7.4.tar.gz",
"has_sig": false,
"md5_digest": "06001351c0dac5580360bda3a7a86ddf",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.9",
"size": 6160176,
"upload_time": "2025-01-31T14:28:44",
"upload_time_iso_8601": "2025-01-31T14:28:44.964633Z",
"url": "https://files.pythonhosted.org/packages/32/c3/55098d3fcaed43cb840ff1ee50d4f478f11525f83d33e434d310eb80e45e/awkward-2.7.4.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-01-31 14:28:44",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "scikit-hep",
"github_project": "awkward-1.0",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "awkward"
}