# aqua-blue
Lightweight and basic reservoir computing library
[](https://pypi.python.org/pypi/aqua-blue/)
[](https://pypi.python.org/pypi/aqua-blue/)
## 🌊 What is aqua-blue?
`aqua-blue` is a lightweight `python` library for reservoir computing (specifically [echo state networks](https://en.wikipedia.org/wiki/Echo_state_network)) depending only on `numpy`. `aqua-blue`'s namesake comes from:
- A blue ocean of data, aka a reservoir 💧
- A very fancy cat named Blue 🐾
## 📥 Installation
`aqua-blue` is on PyPI, and can therefore be installed with `pip`:
```bash
pip install aqua-blue
```
## 📝 Quickstart
```py
import numpy as np
import aqua_blue
# generate arbitrary two-dimensional time series
# y_1(t) = cos(t), y_2(t) = sin(t)
# resulting dependent variable has shape (number of timesteps, 2)
t = np.linspace(0, 4.0 * np.pi, 10_000)
y = np.vstack((2.0 * np.cos(t) + 1, 5.0 * np.sin(t) - 1)).T
# create time series object to feed into echo state network
time_series = aqua_blue.time_series.TimeSeries(dependent_variable=y, times=t)
# normalize
normalizer = aqua_blue.utilities.Normalizer()
time_series = normalizer.normalize(time_series)
# make model and train
model = aqua_blue.models.Model(
reservoir=aqua_blue.reservoirs.DynamicalReservoir(
reservoir_dimensionality=100,
input_dimensionality=2
),
readout=aqua_blue.readouts.LinearReadout()
)
model.train(time_series)
# predict and denormalize
prediction = model.predict(horizon=1_000)
prediction = normalizer.denormalize(prediction)
```
## 📃 License
`aqua-blue` is released under the MIT License.
---

*Blue, the cat behind `aqua-blue`.*
Raw data
{
"_id": null,
"home_page": null,
"name": "aqua-blue",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.9",
"maintainer_email": null,
"keywords": "computing, forecasting, learning, machine, prediction, reservoir, series, time",
"author": null,
"author_email": null,
"download_url": "https://files.pythonhosted.org/packages/d1/04/fd709bb155154661d8ba6829e5c03cc51e08aa6aff01c5e78ec62833a8dd/aqua_blue-0.1.2.tar.gz",
"platform": null,
"description": "# aqua-blue\nLightweight and basic reservoir computing library\n\n[](https://pypi.python.org/pypi/aqua-blue/)\n[](https://pypi.python.org/pypi/aqua-blue/)\n\n## \ud83c\udf0a What is aqua-blue?\n\n`aqua-blue` is a lightweight `python` library for reservoir computing (specifically [echo state networks](https://en.wikipedia.org/wiki/Echo_state_network)) depending only on `numpy`. `aqua-blue`'s namesake comes from:\n\n- A blue ocean of data, aka a reservoir \ud83d\udca7\n- A very fancy cat named Blue \ud83d\udc3e\n\n## \ud83d\udce5 Installation\n\n`aqua-blue` is on PyPI, and can therefore be installed with `pip`:\n\n```bash\npip install aqua-blue\n```\n\n## \ud83d\udcdd Quickstart\n\n```py\nimport numpy as np\nimport aqua_blue\n\n# generate arbitrary two-dimensional time series\n# y_1(t) = cos(t), y_2(t) = sin(t)\n# resulting dependent variable has shape (number of timesteps, 2)\nt = np.linspace(0, 4.0 * np.pi, 10_000)\ny = np.vstack((2.0 * np.cos(t) + 1, 5.0 * np.sin(t) - 1)).T\n\n# create time series object to feed into echo state network\ntime_series = aqua_blue.time_series.TimeSeries(dependent_variable=y, times=t)\n\n# normalize\nnormalizer = aqua_blue.utilities.Normalizer()\ntime_series = normalizer.normalize(time_series)\n\n# make model and train\nmodel = aqua_blue.models.Model(\n reservoir=aqua_blue.reservoirs.DynamicalReservoir(\n reservoir_dimensionality=100,\n input_dimensionality=2\n ),\n readout=aqua_blue.readouts.LinearReadout()\n)\nmodel.train(time_series)\n\n# predict and denormalize\nprediction = model.predict(horizon=1_000)\nprediction = normalizer.denormalize(prediction)\n```\n\n## \ud83d\udcc3 License\n\n`aqua-blue` is released under the MIT License.\n\n---\n\n\n\n*Blue, the cat behind `aqua-blue`.*",
"bugtrack_url": null,
"license": null,
"summary": "Lightweight and basic reservoir computing library",
"version": "0.1.2",
"project_urls": {
"Homepage": "https://github.com/Chicago-Club-Management-Company/aqua-blue"
},
"split_keywords": [
"computing",
" forecasting",
" learning",
" machine",
" prediction",
" reservoir",
" series",
" time"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "f6b16850116c599648bf4d59dfc6b29a35d4b527497fbd52c12e29c9cc5bf7ad",
"md5": "b1a259819fff7d08b4c8909aa5b3a50b",
"sha256": "a87fff8e9b8b5ff5f6b2185bd404346d9e39c141269317381a01f78312be6b58"
},
"downloads": -1,
"filename": "aqua_blue-0.1.2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "b1a259819fff7d08b4c8909aa5b3a50b",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.9",
"size": 8652,
"upload_time": "2025-03-01T00:58:58",
"upload_time_iso_8601": "2025-03-01T00:58:58.573577Z",
"url": "https://files.pythonhosted.org/packages/f6/b1/6850116c599648bf4d59dfc6b29a35d4b527497fbd52c12e29c9cc5bf7ad/aqua_blue-0.1.2-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "d104fd709bb155154661d8ba6829e5c03cc51e08aa6aff01c5e78ec62833a8dd",
"md5": "bdb8c3f4ac2d45b090e3e656d56602ca",
"sha256": "23c7ac063ea326024290aab9a14423c052f0b7c231d5bab5b83156ea254b8751"
},
"downloads": -1,
"filename": "aqua_blue-0.1.2.tar.gz",
"has_sig": false,
"md5_digest": "bdb8c3f4ac2d45b090e3e656d56602ca",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.9",
"size": 7932,
"upload_time": "2025-03-01T00:58:59",
"upload_time_iso_8601": "2025-03-01T00:58:59.829096Z",
"url": "https://files.pythonhosted.org/packages/d1/04/fd709bb155154661d8ba6829e5c03cc51e08aa6aff01c5e78ec62833a8dd/aqua_blue-0.1.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-03-01 00:58:59",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "Chicago-Club-Management-Company",
"github_project": "aqua-blue",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "aqua-blue"
}