{ "info": { "author": "Kenneth S Goodman", "author_email": "kennethsgoodman@yahoo.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3" ], "description": "\n[![Build Status](https://travis-ci.org/kennethgoodman/lazy_numpy.svg?branch=master)](https://travis-ci.org/kennethgoodman/lazy_numpy)\n[![codecov](https://codecov.io/gh/kennethgoodman/lazy_numpy/branch/master/graph/badge.svg)](https://codecov.io/gh/kennethgoodman/lazy_numpy)\n\n# lazynumpy\na lazy evaluated wrapper around numpy\n\nWhat is gained?\n\n* Chained matrix multiplication will be minimized by keeping the values of the other arrays in memory and solving the associative problem that minimizes the number of computations.\n - only keeps one copy of each matrix [Memory optimization in progress]\n* Allow partial matrix returns withou calculating the entire matrix [In Progress]\n\n\nIf you have three matrices with dimensions as below there are two ways to do the matrix multiplication to find the answer:\n\n\n\nEither:\n\n\n\nor\n\n\n\n[1] will take `1000 * 1 * 1000` operations to calculate `A * B` plus `1000 * 1000 * 1000` operations to calculate `(A * B) * C`. The total sum to calculate `A * B * C` is equal to `1000^3 + 1000^2`.\n\n[2] will take `1 * 1000 * 1000` operations to calculate `B * C` plus `1000 * 1 * 1000` operations to calculate `A * (B * C)`. The total sum to calculate `A * B * C` is equal to `1000^2 + 1000^2` which means the optimal multiplication order will be ~500 faster.\n\nIf you run [the simple example](https://github.com/kennethgoodman/lazynumpy/blob/master/examples/simple_faster_calculation.py) you should see a significant speed up. On my computer there is a 50x speedup with only three matrix calculations.\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/kennethgoodman/lazynumpy", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "lazynumpy", "package_url": "https://pypi.org/project/lazynumpy/", "platform": "", "project_url": "https://pypi.org/project/lazynumpy/", "project_urls": { "Homepage": "https://github.com/kennethgoodman/lazynumpy" }, "release_url": "https://pypi.org/project/lazynumpy/0.0.1/", "requires_dist": null, "requires_python": "", "summary": "A wrapper around numpy that does lazy evaluations to optimize for chained matrix multiplication", "version": "0.0.1" }, "last_serial": 4723359, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "a96d43eb047bea30b9cfd5795e4416e0", "sha256": "be3bc493a48ed1e580f60ffaf1579da58f3fd27934952b80bfc053e9c6758458" }, "downloads": -1, "filename": "lazynumpy-0.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "a96d43eb047bea30b9cfd5795e4416e0", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8657, "upload_time": "2019-01-21T21:26:22", "url": "https://files.pythonhosted.org/packages/f5/58/71b57c8d75bd4a95d882fe4e64e1d69d16aa34bd77c763e88ecd40718ae3/lazynumpy-0.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a9e6556176f035128ab0ad2891817698", "sha256": "02b44607b7070bb02e769962a818bbeed7c2be1b1ca333227d8a90f2c90c9f01" }, "downloads": -1, "filename": "lazynumpy-0.0.1.tar.gz", "has_sig": false, "md5_digest": "a9e6556176f035128ab0ad2891817698", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5812, "upload_time": "2019-01-21T21:26:24", "url": "https://files.pythonhosted.org/packages/d6/fc/dc9cfc701faa2b080da06ba62c2fddff00e6041928de86c15fa5cb8e128d/lazynumpy-0.0.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "a96d43eb047bea30b9cfd5795e4416e0", "sha256": "be3bc493a48ed1e580f60ffaf1579da58f3fd27934952b80bfc053e9c6758458" }, "downloads": -1, "filename": "lazynumpy-0.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "a96d43eb047bea30b9cfd5795e4416e0", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8657, "upload_time": "2019-01-21T21:26:22", "url": "https://files.pythonhosted.org/packages/f5/58/71b57c8d75bd4a95d882fe4e64e1d69d16aa34bd77c763e88ecd40718ae3/lazynumpy-0.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a9e6556176f035128ab0ad2891817698", "sha256": "02b44607b7070bb02e769962a818bbeed7c2be1b1ca333227d8a90f2c90c9f01" }, "downloads": -1, "filename": "lazynumpy-0.0.1.tar.gz", "has_sig": false, "md5_digest": "a9e6556176f035128ab0ad2891817698", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5812, "upload_time": "2019-01-21T21:26:24", "url": "https://files.pythonhosted.org/packages/d6/fc/dc9cfc701faa2b080da06ba62c2fddff00e6041928de86c15fa5cb8e128d/lazynumpy-0.0.1.tar.gz" } ] }