# aqua-blue
Lightweight and basic reservoir computing library
[](https://chicago-club-management-company.github.io/aqua-blue/)
[](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 🐾
## 🐜 Found a bug?
Please open an issue [here](https://github.com/Chicago-Club-Management-Company/aqua-blue/issues) if you found a bug!
The easier it is to reproduce the bug, the faster we will find a solution to the problem. Please consider including the
following info in your issue:
- Steps to reproduce
- Expected and actual behavior
- Version info, OS, etc.
## 🔧 Contributing
Please see [CONTRIBUTING.md](https://github.com/Chicago-Club-Management-Company/aqua-blue/blob/main/CONTRIBUTING.md)
for instructions on how to contribute to `aqua-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/5b/42/28b472873954b544bb8a24ab77fb45757d21705d45e4a8f67146f13f7ea5/aqua_blue-0.2.17.tar.gz",
"platform": null,
"description": "# aqua-blue\nLightweight and basic reservoir computing library\n\n[](https://chicago-club-management-company.github.io/aqua-blue/)\n\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\udc1c Found a bug?\n\nPlease open an issue [here](https://github.com/Chicago-Club-Management-Company/aqua-blue/issues) if you found a bug!\nThe easier it is to reproduce the bug, the faster we will find a solution to the problem. Please consider including the\nfollowing info in your issue:\n\n- Steps to reproduce\n- Expected and actual behavior\n- Version info, OS, etc.\n\n## \ud83d\udd27 Contributing\n\nPlease see [CONTRIBUTING.md](https://github.com/Chicago-Club-Management-Company/aqua-blue/blob/main/CONTRIBUTING.md)\nfor instructions on how to contribute to `aqua-blue` \u263a\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.2.17",
"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": "806d00b42b2faf201f2f1acc584c65a8eab44a6e7c834b23dc2cd49a4a80e107",
"md5": "93548825050cdc546974e874f3e37119",
"sha256": "a4ff754f4ca96f0a8233243c594149a7106e5aba31eb7256f93906cd46137e34"
},
"downloads": -1,
"filename": "aqua_blue-0.2.17-py3-none-any.whl",
"has_sig": false,
"md5_digest": "93548825050cdc546974e874f3e37119",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.9",
"size": 19222,
"upload_time": "2025-04-20T22:00:43",
"upload_time_iso_8601": "2025-04-20T22:00:43.890102Z",
"url": "https://files.pythonhosted.org/packages/80/6d/00b42b2faf201f2f1acc584c65a8eab44a6e7c834b23dc2cd49a4a80e107/aqua_blue-0.2.17-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "5b4228b472873954b544bb8a24ab77fb45757d21705d45e4a8f67146f13f7ea5",
"md5": "4694f90e0985ffa15c0dd0294d7bd733",
"sha256": "ad5ce3018027801e52518d588b6d38bd80e9476f7cebb1b69a88f8ac08678886"
},
"downloads": -1,
"filename": "aqua_blue-0.2.17.tar.gz",
"has_sig": false,
"md5_digest": "4694f90e0985ffa15c0dd0294d7bd733",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.9",
"size": 17016,
"upload_time": "2025-04-20T22:00:45",
"upload_time_iso_8601": "2025-04-20T22:00:45.592597Z",
"url": "https://files.pythonhosted.org/packages/5b/42/28b472873954b544bb8a24ab77fb45757d21705d45e4a8f67146f13f7ea5/aqua_blue-0.2.17.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-04-20 22:00:45",
"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"
}