{ "info": { "author": "Nico Schl\u00f6mer", "author_email": "nico.schloemer@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Science/Research", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 3", "Topic :: Scientific/Engineering", "Topic :: Software Development :: Libraries" ], "description": "# fastfunc\n\n[![CircleCI](https://img.shields.io/circleci/project/github/nschloe/fastfunc/master.svg?style=flat-square)](https://circleci.com/gh/nschloe/fastfunc/tree/master)\n[![codecov](https://img.shields.io/codecov/c/github/nschloe/fastfunc.svg?style=flat-square)](https://codecov.io/gh/nschloe/fastfunc)\n[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg?style=flat-square)](https://github.com/ambv/black)\n[![speedy](https://img.shields.io/badge/speedy-gonzales-ff69b4.svg?style=flat-square)](https://github.com/nschloe/fastfunc)\n[![PyPi Version](https://img.shields.io/pypi/v/fastfunc.svg?style=flat-square)](https://pypi.org/project/fastfunc)\n[![GitHub stars](https://img.shields.io/github/stars/nschloe/fastfunc.svg?style=flat-square&logo=github&label=Stars&logoColor=white)](https://github.com/nschloe/fastfunc)\n[![PyPi downloads](https://img.shields.io/pypi/dd/fastfunc.svg?style=flat-square)](https://pypistats.org/packages/fastfunc)\n\n[NumPy's own ufunc\noperations](https://docs.scipy.org/doc/numpy/reference/generated/numpy.ufunc.at.html)\nare handy, but can be quite slow (see https://github.com/numpy/numpy/issues/5922 and\nhttps://github.com/numpy/numpy/issues/11156). Use `fastfunc` as a drop-in replacement\n```python\n# import numpy\n# numpy.add.at(target, idx, vals)\n\nimport fastfunc\nfastfunc.add.at(target, idx, vals)\n\n# If you really only need _add_, you can use\n# numpy.bincount(idx, weights=vals, minlength=target.shape[0])\n```\nto get a speed-up by a factor of 40.\n\n![](https://nschloe.github.io/fastfunc/add.png)\n\nThis is achieved by moving the operations to C++ using [pybind11](https://github.com/pybind/pybind11).\n\n### Installation\n\nfastfunc is [available from the Python Package\nIndex](https://pypi.org/project/fastfunc/), so simply do\n```\npip install -U fastfunc\n```\nto install or upgrade.\n\n### Testing\n\nTo run the fastfunc unit tests, check out this repository and type\n```\npytest\n```\n\n### License\n\nfastfunc is published under the [MIT license](https://en.wikipedia.org/wiki/MIT_License).", "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/nschloe/fastfunc", "keywords": "", "license": "License :: OSI Approved :: MIT License", "maintainer": "", "maintainer_email": "", "name": "fastfunc", "package_url": "https://pypi.org/project/fastfunc/", "platform": "any", "project_url": "https://pypi.org/project/fastfunc/", "project_urls": { "Homepage": "https://github.com/nschloe/fastfunc" }, "release_url": "https://pypi.org/project/fastfunc/0.2.2/", "requires_dist": null, "requires_python": ">3=", "summary": "Fast numpy ufunc operations", "version": "0.2.2" }, "last_serial": 5535424, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "b0c08405fbc0ff1e3fb9a4b98f946b9b", "sha256": "f3c96985ecce9ef103b9cab1d7c98398a22ad9e332ad775bd4d338377dcc1f89" }, "downloads": -1, "filename": "fastfunc-0.1.0.tar.gz", "has_sig": false, "md5_digest": "b0c08405fbc0ff1e3fb9a4b98f946b9b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4171, "upload_time": "2018-05-24T12:23:25", "url": "https://files.pythonhosted.org/packages/4b/73/8d7eaef91c9b766519b36ebbf7caf37d108e9cf1bc708307885a43706b39/fastfunc-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "d59d94ca8b8f4cf5a9feb1dc25609e7c", "sha256": "70698bf4e4c1f18cdf67a0b71ef2fcc2be9d3b9aff6e6f0496d0a8f44f76800d" }, "downloads": -1, "filename": "fastfunc-0.1.1.tar.gz", "has_sig": false, "md5_digest": "d59d94ca8b8f4cf5a9feb1dc25609e7c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4230, "upload_time": "2018-06-26T10:11:06", "url": "https://files.pythonhosted.org/packages/6f/3b/ba8c95cf924afff500bd62f876cb3fc6cad24eea6e5636611bab38101e32/fastfunc-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "26b77fa94f80ae192b2ebad10e073faa", "sha256": "307087e955e9df961210b1555baf78825c162c09fa84caac86ac40c08317dfa2" }, "downloads": -1, "filename": "fastfunc-0.1.2.tar.gz", "has_sig": false, "md5_digest": "26b77fa94f80ae192b2ebad10e073faa", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5930, "upload_time": "2018-06-30T17:11:35", "url": "https://files.pythonhosted.org/packages/4d/01/147a97a8b2f5539aee17bb8133784e6f5978dbe3f97d111797f9db1cb996/fastfunc-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "8114a7ca602d45381787119e2ef2c6f1", "sha256": "b530ece4e8f182f9ad90978eefa7d4e974bf9f3adf59dd013fcb63027251c830" }, "downloads": -1, "filename": "fastfunc-0.1.3.tar.gz", "has_sig": false, "md5_digest": "8114a7ca602d45381787119e2ef2c6f1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6145, "upload_time": "2018-06-30T20:24:32", "url": "https://files.pythonhosted.org/packages/27/76/3590331dbdfbae901f4c7cc746a63d776844789880ddc514edf4aea26634/fastfunc-0.1.3.tar.gz" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "79e5ad5959aed682bb19cc409932dc6b", "sha256": "e473d8d0f3416e858e112d1ade44e558bd667aa1b7db4ffb1051045b8f14249a" }, "downloads": -1, "filename": "fastfunc-0.1.4.tar.gz", "has_sig": false, "md5_digest": "79e5ad5959aed682bb19cc409932dc6b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6293, "upload_time": "2018-07-13T11:42:32", "url": "https://files.pythonhosted.org/packages/6a/2f/b119a95ce624104dee5915bd59630601aa93213daa801f2c53296d6cac07/fastfunc-0.1.4.tar.gz" } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "4625ddadd2fc73fd919e387e71a5b870", "sha256": "76f9cd7d1f3ee692631ddfde962bf7fe598e31acb36a51a9928a0e467c03f72a" }, "downloads": -1, "filename": "fastfunc-0.1.5.tar.gz", "has_sig": false, "md5_digest": "4625ddadd2fc73fd919e387e71a5b870", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6356, "upload_time": "2018-07-15T19:01:27", "url": "https://files.pythonhosted.org/packages/bd/93/54d9dfbfa7cdf9104725c164eff6f7204dc1a8682150efc9624591881458/fastfunc-0.1.5.tar.gz" } ], "0.1.6": [ { "comment_text": "", "digests": { "md5": "783f8068fa2f451b68a6856032c28797", "sha256": "049a1bce43a029e5b543b186d64658055546434406e477dd041c3e4becb55b47" }, "downloads": -1, "filename": "fastfunc-0.1.6.tar.gz", "has_sig": false, "md5_digest": "783f8068fa2f451b68a6856032c28797", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6371, "upload_time": "2018-09-19T12:40:59", "url": "https://files.pythonhosted.org/packages/08/f8/a71585fd863748b0e83a6a8f34553ac5e9bd727ceb7c16ca227632e8c5d6/fastfunc-0.1.6.tar.gz" } ], "0.1.7": [ { "comment_text": "", "digests": { "md5": "4b110513361bc5731b5ee66ab8a8204e", "sha256": "92cb4fd316e6eceffb17a26216ca730d92ccba43b94a7eec2f8ccf9158ec1e6e" }, "downloads": -1, "filename": "fastfunc-0.1.7.tar.gz", "has_sig": false, "md5_digest": "4b110513361bc5731b5ee66ab8a8204e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7108, "upload_time": "2019-03-04T11:31:02", "url": "https://files.pythonhosted.org/packages/d1/16/067189d96d3cb6ee0cdc1d033685b2a378ddee5fb9de8dd7b44cd6db6db8/fastfunc-0.1.7.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "912f2dac9151b26b698343acc8311ebb", "sha256": "202559a1d22cbbcea79b775eed9aa51b3e3f5080b335e5ea9f7ab15d183355bf" }, "downloads": -1, "filename": "fastfunc-0.2.1.tar.gz", "has_sig": false, "md5_digest": "912f2dac9151b26b698343acc8311ebb", "packagetype": "sdist", "python_version": "source", "requires_python": ">3=", "size": 6796, "upload_time": "2019-07-15T07:41:51", "url": "https://files.pythonhosted.org/packages/33/1b/90ae3e9af7d50f66e5955cd3a0a2cb307fd7807e026cdb09cb082f909bdf/fastfunc-0.2.1.tar.gz" } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "86048f57f59663669a66c387ddc399ef", "sha256": "71df231bd6d84537a8a188922c26749e35d867a1a050e5d4dd36d2d386f3739e" }, "downloads": -1, "filename": "fastfunc-0.2.2.tar.gz", "has_sig": false, "md5_digest": "86048f57f59663669a66c387ddc399ef", "packagetype": "sdist", "python_version": "source", "requires_python": ">3=", "size": 6895, "upload_time": "2019-07-15T14:58:07", "url": "https://files.pythonhosted.org/packages/a3/04/653233714fd7612946b468b29f19a0f82569f41083b7fc3ba43bfca8e1f8/fastfunc-0.2.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "86048f57f59663669a66c387ddc399ef", "sha256": "71df231bd6d84537a8a188922c26749e35d867a1a050e5d4dd36d2d386f3739e" }, "downloads": -1, "filename": "fastfunc-0.2.2.tar.gz", "has_sig": false, "md5_digest": "86048f57f59663669a66c387ddc399ef", "packagetype": "sdist", "python_version": "source", "requires_python": ">3=", "size": 6895, "upload_time": "2019-07-15T14:58:07", "url": "https://files.pythonhosted.org/packages/a3/04/653233714fd7612946b468b29f19a0f82569f41083b7fc3ba43bfca8e1f8/fastfunc-0.2.2.tar.gz" } ] }