batcharray


Namebatcharray JSON
Version 0.1.0 PyPI version JSON
download
home_pagehttps://github.com/durandtibo/batcharray
SummaryFunctions to manipulate NumPy arrays
upload_time2024-10-24 06:40:33
maintainerNone
docs_urlNone
authorThibaut Durand
requires_python<3.14,>=3.9
licenseBSD-3-Clause
keywords batch sequence numpy array
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # batcharray

<p align="center">
    <a href="https://github.com/durandtibo/batcharray/actions">
        <img alt="CI" src="https://github.com/durandtibo/batcharray/workflows/CI/badge.svg">
    </a>
    <a href="https://github.com/durandtibo/batcharray/actions">
        <img alt="Nightly Tests" src="https://github.com/durandtibo/batcharray/workflows/Nightly%20Tests/badge.svg">
    </a>
    <a href="https://github.com/durandtibo/batcharray/actions">
        <img alt="Nightly Package Tests" src="https://github.com/durandtibo/batcharray/workflows/Nightly%20Package%20Tests/badge.svg">
    </a>
    <br/>
    <a href="https://durandtibo.github.io/batcharray/">
        <img alt="Documentation" src="https://github.com/durandtibo/batcharray/workflows/Documentation%20(stable)/badge.svg">
    </a>
    <a href="https://durandtibo.github.io/batcharray/">
        <img alt="Documentation" src="https://github.com/durandtibo/batcharray/workflows/Documentation%20(unstable)/badge.svg">
    </a>
    <br/>
    <a href="https://codecov.io/gh/durandtibo/batcharray">
        <img alt="Codecov" src="https://codecov.io/gh/durandtibo/batcharray/branch/main/graph/badge.svg">
    </a>
    <a href="https://codeclimate.com/github/durandtibo/batcharray/maintainability">
        <img src="https://api.codeclimate.com/v1/badges/9907f3838df3b9a1cba8/maintainability" />
    </a>
    <a href="https://codeclimate.com/github/durandtibo/batcharray/test_coverage">
        <img src="https://api.codeclimate.com/v1/badges/9907f3838df3b9a1cba8/test_coverage" />
    </a>
    <br/>
    <a href="https://github.com/psf/black">
        <img  alt="Code style: black" src="https://img.shields.io/badge/code%20style-black-000000.svg">
    </a>
    <a href="https://google.github.io/styleguide/pyguide.html#s3.8-comments-and-docstrings">
        <img  alt="Doc style: google" src="https://img.shields.io/badge/%20style-google-3666d6.svg">
    </a>
    <a href="https://github.com/astral-sh/ruff">
        <img src="https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json" alt="Ruff" style="max-width:100%;">
    </a>
    <a href="https://github.com/guilatrova/tryceratops">
        <img  alt="Doc style: google" src="https://img.shields.io/badge/try%2Fexcept%20style-tryceratops%20%F0%9F%A6%96%E2%9C%A8-black">
    </a>
    <br/>
    <a href="https://pypi.org/project/batcharray/">
        <img alt="PYPI version" src="https://img.shields.io/pypi/v/batcharray">
    </a>
    <a href="https://pypi.org/project/batcharray/">
        <img alt="Python" src="https://img.shields.io/pypi/pyversions/batcharray.svg">
    </a>
    <a href="https://opensource.org/licenses/BSD-3-Clause">
        <img alt="BSD-3-Clause" src="https://img.shields.io/pypi/l/batcharray">
    </a>
    <br/>
    <a href="https://pepy.tech/project/batcharray">
        <img  alt="Downloads" src="https://static.pepy.tech/badge/batcharray">
    </a>
    <a href="https://pepy.tech/project/batcharray">
        <img  alt="Monthly downloads" src="https://static.pepy.tech/badge/batcharray/month">
    </a>
    <br/>
</p>

## Overview

`batcharray` is lightweight library built on top of [NumPy](https://numpy.org/doc/stable/index.html)
to manipulate nested data structure with NumPy arrays.
This library provides functions for arrays where the first axis is the batch axis.
It also provides functions for arrays representing a batch of sequences where the first axis
is the batch axis and the second axis is the sequence axis.

- [Motivation](#motivation)
- [Documentation](https://durandtibo.github.io/batcharray/)
- [Installation](#installation)
- [Contributing](#contributing)
- [API stability](#api-stability)
- [License](#license)

## Motivation

Let's imagine you have a batch which is represented by a dictionary with three arrays, and you want
to take the first 2 items.
`batcharray` provides the function `slice_along_batch` that allows to slide all the arrays:

```pycon

>>> import numpy as np
>>> from batcharray.nested import slice_along_batch
>>> batch = {
...     "a": np.array([[2, 6], [0, 3], [4, 9], [8, 1], [5, 7]]),
...     "b": np.array([4, 3, 2, 1, 0]),
...     "c": np.array([1.0, 2.0, 3.0, 4.0, 5.0]),
... }
>>> slice_along_batch(batch, stop=2)
{'a': array([[2, 6], [0, 3]]), 'b': array([4, 3]), 'c': array([1., 2.])}

```

Similarly, it is possible to split a batch in multiple batches by using the
function `split_along_batch`:

```pycon

>>> import numpy as np
>>> from batcharray.nested import split_along_batch
>>> batch = {
...     "a": np.array([[2, 6], [0, 3], [4, 9], [8, 1], [5, 7]]),
...     "b": np.array([4, 3, 2, 1, 0]),
...     "c": np.array([1.0, 2.0, 3.0, 4.0, 5.0]),
... }
>>> split_along_batch(batch, split_size_or_sections=2)
[{'a': array([[2, 6], [0, 3]]), 'b': array([4, 3]), 'c': array([1., 2.])},
 {'a': array([[4, 9], [8, 1]]), 'b': array([2, 1]), 'c': array([3., 4.])},
 {'a': array([[5, 7]]), 'b': array([0]), 'c': array([5.])}]

```

Please check the documentation to see all the implemented functions.

## Documentation

- [latest (stable)](https://durandtibo.github.io/batcharray/): documentation from the latest stable
  release.
- [main (unstable)](https://durandtibo.github.io/batcharray/main/): documentation associated to the
  main branch of the repo. This documentation may contain a lot of work-in-progress/outdated/missing
  parts.

## Installation

We highly recommend installing
a [virtual environment](https://packaging.python.org/guides/installing-using-pip-and-virtual-environments/).
`batcharray` can be installed from pip using the following command:

```shell
pip install batcharray
```

To make the package as slim as possible, only the minimal packages required to use `batcharray` are
installed.
To include all the dependencies, you can use the following command:

```shell
pip install batcharray[all]
```

Please check the [get started page](https://durandtibo.github.io/batcharray/get_started) to see how
to install only some specific dependencies or other alternatives to install the library.
The following is the corresponding `batcharray` versions and tested dependencies.

| `batcharray` | `coola`        | `numpy`       | `python`      |
|--------------|----------------|---------------|---------------|
| `main`       | `>=0.8.4,<1.0` | `>=1.22,<3.0` | `>=3.9,<3.14` |
| `0.1.0`      | `>=0.8.4,<1.0` | `>=1.22,<3.0` | `>=3.9,<3.14` |
| `0.0.3`      | `>=0.3,<1.0`   | `>=1.22,<3.0` | `>=3.9,<3.13` |
| `0.0.2`      | `>=0.3,<1.0`   | `>=1.22,<2.0` | `>=3.9,<3.13` |
| `0.0.1`      | `>=0.3,<1.0`   | `>=1.22,<2.0` | `>=3.9,<3.13` |

<sup>*</sup> indicates an optional dependency

## Contributing

Please check the instructions in [CONTRIBUTING.md](.github/CONTRIBUTING.md).

## Suggestions and Communication

Everyone is welcome to contribute to the community.
If you have any questions or suggestions, you can
submit [Github Issues](https://github.com/durandtibo/batcharray/issues).
We will reply to you as soon as possible. Thank you very much.

## API stability

:warning: While `batcharray` is in development stage, no API is guaranteed to be stable from one
release to the next.
In fact, it is very likely that the API will change multiple times before a stable 1.0.0 release.
In practice, this means that upgrading `batcharray` to a new version will possibly break any code
that was using the old version of `batcharray`.

## License

`batcharray` is licensed under BSD 3-Clause "New" or "Revised" license available
in [LICENSE](LICENSE) file.

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/durandtibo/batcharray",
    "name": "batcharray",
    "maintainer": null,
    "docs_url": null,
    "requires_python": "<3.14,>=3.9",
    "maintainer_email": null,
    "keywords": "batch, sequence, numpy, array",
    "author": "Thibaut Durand",
    "author_email": "durand.tibo+gh@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/1d/a2/63369f20bda7254d18cef0e0a8254535e4df1d787b4e89cfab7c209a2b9a/batcharray-0.1.0.tar.gz",
    "platform": null,
    "description": "# batcharray\n\n<p align=\"center\">\n    <a href=\"https://github.com/durandtibo/batcharray/actions\">\n        <img alt=\"CI\" src=\"https://github.com/durandtibo/batcharray/workflows/CI/badge.svg\">\n    </a>\n    <a href=\"https://github.com/durandtibo/batcharray/actions\">\n        <img alt=\"Nightly Tests\" src=\"https://github.com/durandtibo/batcharray/workflows/Nightly%20Tests/badge.svg\">\n    </a>\n    <a href=\"https://github.com/durandtibo/batcharray/actions\">\n        <img alt=\"Nightly Package Tests\" src=\"https://github.com/durandtibo/batcharray/workflows/Nightly%20Package%20Tests/badge.svg\">\n    </a>\n    <br/>\n    <a href=\"https://durandtibo.github.io/batcharray/\">\n        <img alt=\"Documentation\" src=\"https://github.com/durandtibo/batcharray/workflows/Documentation%20(stable)/badge.svg\">\n    </a>\n    <a href=\"https://durandtibo.github.io/batcharray/\">\n        <img alt=\"Documentation\" src=\"https://github.com/durandtibo/batcharray/workflows/Documentation%20(unstable)/badge.svg\">\n    </a>\n    <br/>\n    <a href=\"https://codecov.io/gh/durandtibo/batcharray\">\n        <img alt=\"Codecov\" src=\"https://codecov.io/gh/durandtibo/batcharray/branch/main/graph/badge.svg\">\n    </a>\n    <a href=\"https://codeclimate.com/github/durandtibo/batcharray/maintainability\">\n        <img src=\"https://api.codeclimate.com/v1/badges/9907f3838df3b9a1cba8/maintainability\" />\n    </a>\n    <a href=\"https://codeclimate.com/github/durandtibo/batcharray/test_coverage\">\n        <img src=\"https://api.codeclimate.com/v1/badges/9907f3838df3b9a1cba8/test_coverage\" />\n    </a>\n    <br/>\n    <a href=\"https://github.com/psf/black\">\n        <img  alt=\"Code style: black\" src=\"https://img.shields.io/badge/code%20style-black-000000.svg\">\n    </a>\n    <a href=\"https://google.github.io/styleguide/pyguide.html#s3.8-comments-and-docstrings\">\n        <img  alt=\"Doc style: google\" src=\"https://img.shields.io/badge/%20style-google-3666d6.svg\">\n    </a>\n    <a href=\"https://github.com/astral-sh/ruff\">\n        <img src=\"https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json\" alt=\"Ruff\" style=\"max-width:100%;\">\n    </a>\n    <a href=\"https://github.com/guilatrova/tryceratops\">\n        <img  alt=\"Doc style: google\" src=\"https://img.shields.io/badge/try%2Fexcept%20style-tryceratops%20%F0%9F%A6%96%E2%9C%A8-black\">\n    </a>\n    <br/>\n    <a href=\"https://pypi.org/project/batcharray/\">\n        <img alt=\"PYPI version\" src=\"https://img.shields.io/pypi/v/batcharray\">\n    </a>\n    <a href=\"https://pypi.org/project/batcharray/\">\n        <img alt=\"Python\" src=\"https://img.shields.io/pypi/pyversions/batcharray.svg\">\n    </a>\n    <a href=\"https://opensource.org/licenses/BSD-3-Clause\">\n        <img alt=\"BSD-3-Clause\" src=\"https://img.shields.io/pypi/l/batcharray\">\n    </a>\n    <br/>\n    <a href=\"https://pepy.tech/project/batcharray\">\n        <img  alt=\"Downloads\" src=\"https://static.pepy.tech/badge/batcharray\">\n    </a>\n    <a href=\"https://pepy.tech/project/batcharray\">\n        <img  alt=\"Monthly downloads\" src=\"https://static.pepy.tech/badge/batcharray/month\">\n    </a>\n    <br/>\n</p>\n\n## Overview\n\n`batcharray` is lightweight library built on top of [NumPy](https://numpy.org/doc/stable/index.html)\nto manipulate nested data structure with NumPy arrays.\nThis library provides functions for arrays where the first axis is the batch axis.\nIt also provides functions for arrays representing a batch of sequences where the first axis\nis the batch axis and the second axis is the sequence axis.\n\n- [Motivation](#motivation)\n- [Documentation](https://durandtibo.github.io/batcharray/)\n- [Installation](#installation)\n- [Contributing](#contributing)\n- [API stability](#api-stability)\n- [License](#license)\n\n## Motivation\n\nLet's imagine you have a batch which is represented by a dictionary with three arrays, and you want\nto take the first 2 items.\n`batcharray` provides the function `slice_along_batch` that allows to slide all the arrays:\n\n```pycon\n\n>>> import numpy as np\n>>> from batcharray.nested import slice_along_batch\n>>> batch = {\n...     \"a\": np.array([[2, 6], [0, 3], [4, 9], [8, 1], [5, 7]]),\n...     \"b\": np.array([4, 3, 2, 1, 0]),\n...     \"c\": np.array([1.0, 2.0, 3.0, 4.0, 5.0]),\n... }\n>>> slice_along_batch(batch, stop=2)\n{'a': array([[2, 6], [0, 3]]), 'b': array([4, 3]), 'c': array([1., 2.])}\n\n```\n\nSimilarly, it is possible to split a batch in multiple batches by using the\nfunction `split_along_batch`:\n\n```pycon\n\n>>> import numpy as np\n>>> from batcharray.nested import split_along_batch\n>>> batch = {\n...     \"a\": np.array([[2, 6], [0, 3], [4, 9], [8, 1], [5, 7]]),\n...     \"b\": np.array([4, 3, 2, 1, 0]),\n...     \"c\": np.array([1.0, 2.0, 3.0, 4.0, 5.0]),\n... }\n>>> split_along_batch(batch, split_size_or_sections=2)\n[{'a': array([[2, 6], [0, 3]]), 'b': array([4, 3]), 'c': array([1., 2.])},\n {'a': array([[4, 9], [8, 1]]), 'b': array([2, 1]), 'c': array([3., 4.])},\n {'a': array([[5, 7]]), 'b': array([0]), 'c': array([5.])}]\n\n```\n\nPlease check the documentation to see all the implemented functions.\n\n## Documentation\n\n- [latest (stable)](https://durandtibo.github.io/batcharray/): documentation from the latest stable\n  release.\n- [main (unstable)](https://durandtibo.github.io/batcharray/main/): documentation associated to the\n  main branch of the repo. This documentation may contain a lot of work-in-progress/outdated/missing\n  parts.\n\n## Installation\n\nWe highly recommend installing\na [virtual environment](https://packaging.python.org/guides/installing-using-pip-and-virtual-environments/).\n`batcharray` can be installed from pip using the following command:\n\n```shell\npip install batcharray\n```\n\nTo make the package as slim as possible, only the minimal packages required to use `batcharray` are\ninstalled.\nTo include all the dependencies, you can use the following command:\n\n```shell\npip install batcharray[all]\n```\n\nPlease check the [get started page](https://durandtibo.github.io/batcharray/get_started) to see how\nto install only some specific dependencies or other alternatives to install the library.\nThe following is the corresponding `batcharray` versions and tested dependencies.\n\n| `batcharray` | `coola`        | `numpy`       | `python`      |\n|--------------|----------------|---------------|---------------|\n| `main`       | `>=0.8.4,<1.0` | `>=1.22,<3.0` | `>=3.9,<3.14` |\n| `0.1.0`      | `>=0.8.4,<1.0` | `>=1.22,<3.0` | `>=3.9,<3.14` |\n| `0.0.3`      | `>=0.3,<1.0`   | `>=1.22,<3.0` | `>=3.9,<3.13` |\n| `0.0.2`      | `>=0.3,<1.0`   | `>=1.22,<2.0` | `>=3.9,<3.13` |\n| `0.0.1`      | `>=0.3,<1.0`   | `>=1.22,<2.0` | `>=3.9,<3.13` |\n\n<sup>*</sup> indicates an optional dependency\n\n## Contributing\n\nPlease check the instructions in [CONTRIBUTING.md](.github/CONTRIBUTING.md).\n\n## Suggestions and Communication\n\nEveryone is welcome to contribute to the community.\nIf you have any questions or suggestions, you can\nsubmit [Github Issues](https://github.com/durandtibo/batcharray/issues).\nWe will reply to you as soon as possible. Thank you very much.\n\n## API stability\n\n:warning: While `batcharray` is in development stage, no API is guaranteed to be stable from one\nrelease to the next.\nIn fact, it is very likely that the API will change multiple times before a stable 1.0.0 release.\nIn practice, this means that upgrading `batcharray` to a new version will possibly break any code\nthat was using the old version of `batcharray`.\n\n## License\n\n`batcharray` is licensed under BSD 3-Clause \"New\" or \"Revised\" license available\nin [LICENSE](LICENSE) file.\n",
    "bugtrack_url": null,
    "license": "BSD-3-Clause",
    "summary": "Functions to manipulate NumPy arrays",
    "version": "0.1.0",
    "project_urls": {
        "Homepage": "https://github.com/durandtibo/batcharray",
        "Repository": "https://github.com/durandtibo/batcharray"
    },
    "split_keywords": [
        "batch",
        " sequence",
        " numpy",
        " array"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "a8c5e11fc0d84ac898ecd5a47b7c573bc856cc84962d1d1b8885b7b639a63608",
                "md5": "2150e37c535f07109a05dcf2f2f32fed",
                "sha256": "a777dc6470aea9e5a898eaa20e63d8d1b1e23abe7fc88e8510f5284555eaeb48"
            },
            "downloads": -1,
            "filename": "batcharray-0.1.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "2150e37c535f07109a05dcf2f2f32fed",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<3.14,>=3.9",
            "size": 44812,
            "upload_time": "2024-10-24T06:40:31",
            "upload_time_iso_8601": "2024-10-24T06:40:31.987570Z",
            "url": "https://files.pythonhosted.org/packages/a8/c5/e11fc0d84ac898ecd5a47b7c573bc856cc84962d1d1b8885b7b639a63608/batcharray-0.1.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "1da263369f20bda7254d18cef0e0a8254535e4df1d787b4e89cfab7c209a2b9a",
                "md5": "6651dbf9865bafc147e95b45332a3c7a",
                "sha256": "221037a626f01458ed0dc9575e376f62f1474cf3d406f1cc11e5dc5ed2b02b74"
            },
            "downloads": -1,
            "filename": "batcharray-0.1.0.tar.gz",
            "has_sig": false,
            "md5_digest": "6651dbf9865bafc147e95b45332a3c7a",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<3.14,>=3.9",
            "size": 29443,
            "upload_time": "2024-10-24T06:40:33",
            "upload_time_iso_8601": "2024-10-24T06:40:33.290570Z",
            "url": "https://files.pythonhosted.org/packages/1d/a2/63369f20bda7254d18cef0e0a8254535e4df1d787b4e89cfab7c209a2b9a/batcharray-0.1.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-10-24 06:40:33",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "durandtibo",
    "github_project": "batcharray",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "batcharray"
}
        
Elapsed time: 0.37286s