{ "info": { "author": "Simon Gibbons", "author_email": "simongibbons@gmail.com", "bugtrack_url": null, "classifiers": [], "description": "pyfof\n=====\n\nFriends of Friends cluster finding in python.\n\nThis implements the friends-of-friends algorithm to find clusters of points,\naccelerated with an R*-tree.\n\n## Requirements\n * c++11 complient compiler\n * [Cython](http://cython.org/) (for the development version only)\n * [numpy](http://www.numpy.org/)\n * [boost](http://www.boost.org/)\n\n## Installation\n\nIf your boost installation is in a normal place you should just be able to install\nthe latest release of the package directly from PyPI\n\n```pip install pyfof```\n\nIf that fails then you will need to tell pip where to find your boost include\ndirectory. This can be done by creating a file in your home directory called\n```.pydistutils.cfg``` containing:\n\n```\n[build_ext]\ninclude_dirs=/path/to/boost/include/directory\n```\n\nand then running the above command.\n\n## Examples\n\n### Two Gaussian blobs\n\n```python\nimport numpy as np\nimport matplotlib.pyplot as plt\nimport matplotlib.cm as cm\nimport pyfof\n\nnpts = 10000\ndata = np.vstack((np.random.normal(-1,0.2,(npts/2,2)),\\\n np.random.normal(1,0.2,(npts/2,2))))\n\ngroups = pyfof.friends_of_friends(data, 0.4)\n\ncolors = cm.rainbow(np.linspace(0, 1, len(groups)))\nfor g,c in zip(groups, colors):\n plt.scatter(data[g,0], data[g,1], color=c, s=3)\n\nplt.show()\n```\n\n![gaussian_example](/../screenshots/img/gaussian_example.png)\n\n### A more complicated example\n\n![stream_example](/../screenshots/img/stream_example.png)\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/simongibbons/pyfof", "keywords": "clustering,friends-of-friends", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "pyfof", "package_url": "https://pypi.org/project/pyfof/", "platform": "", "project_url": "https://pypi.org/project/pyfof/", "project_urls": { "Homepage": "https://github.com/simongibbons/pyfof" }, "release_url": "https://pypi.org/project/pyfof/0.1.5/", "requires_dist": [ "numpy" ], "requires_python": "", "summary": "Friends-of-friends cluster finding in python", "version": "0.1.5" }, "last_serial": 5493653, "releases": { "0.1.1": [ { "comment_text": "", "digests": { "md5": "718455b7038b6fb0a0e06ad742bc0713", "sha256": "edf3d09fc4292487f4086fcb5bb3f213f0ced5c9884a70b2793c2980c42d1bae" }, "downloads": -1, "filename": "pyfof-0.1.1.tar.gz", "has_sig": false, "md5_digest": "718455b7038b6fb0a0e06ad742bc0713", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 41037, "upload_time": "2015-03-30T13:41:47", "url": "https://files.pythonhosted.org/packages/9c/7c/83c3d259e9ff571eaaa5f3aeda56f8f4e82c60bf252a99eb3d43e62fe376/pyfof-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "406d585a97f2de8475d82f085bd6e6cb", "sha256": "b35cfeabf441fbed36f6956718f7ccaf7330057407ad71a7b5093fbb3048851d" }, "downloads": -1, "filename": "pyfof-0.1.2.tar.gz", "has_sig": false, "md5_digest": "406d585a97f2de8475d82f085bd6e6cb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 41793, "upload_time": "2015-04-23T09:35:03", "url": "https://files.pythonhosted.org/packages/d5/04/e72a4fc1166140b1fc99f2a15d5a4cfabdf273ceba9b52f1420c91acaddb/pyfof-0.1.2.tar.gz" } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "d8a004981baa8c0842cb9349a33a5596", "sha256": "b91733db08769a01e659524ad1938c519ec31fa98df438aade69cc33e0ea40b2" }, "downloads": -1, "filename": "pyfof-0.1.5-cp27-cp27m-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "d8a004981baa8c0842cb9349a33a5596", "packagetype": "bdist_wheel", "python_version": "cp27", "requires_python": null, "size": 1230291, "upload_time": "2019-07-06T01:09:02", "url": "https://files.pythonhosted.org/packages/f4/71/db94a386a38e77196dbe60d360e6db724f61c98fd627949023d82bcac099/pyfof-0.1.5-cp27-cp27m-manylinux1_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "6b944b3c363710ddea082c9bdb9ba428", "sha256": "dce6cf1625382e5b1f7b2bf6c718d83fa67698dac28dc75f3b0f34a893dac911" }, "downloads": -1, "filename": "pyfof-0.1.5-cp27-cp27mu-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "6b944b3c363710ddea082c9bdb9ba428", "packagetype": "bdist_wheel", "python_version": "cp27", "requires_python": null, "size": 1230264, "upload_time": "2019-07-06T01:09:07", "url": "https://files.pythonhosted.org/packages/59/74/7aa54c8726feacbc481c68672ff52bf779ddc6f2187ff3fc309f37cf9a67/pyfof-0.1.5-cp27-cp27mu-manylinux1_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "0847cb685199f580f1fc505f686abfb3", "sha256": "410fe55228d7063dd9006c94c9638a474cb72e64dee422a93eef134248fd4db7" }, "downloads": -1, "filename": "pyfof-0.1.5-cp34-cp34m-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "0847cb685199f580f1fc505f686abfb3", "packagetype": "bdist_wheel", "python_version": "cp34", "requires_python": null, "size": 1209209, "upload_time": "2019-07-06T01:09:11", "url": "https://files.pythonhosted.org/packages/23/92/70afa090f162b794b1c5d8e644b899eb7a017a0d2385a60c5d706c686961/pyfof-0.1.5-cp34-cp34m-manylinux1_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "24205194b52359eaa6a1ecf4fb8cd5ab", "sha256": "b79f0aff8344a3c7b5d1ed7ac5aaa5f4611320643fcf1ed8bacad1c1ac2b3a43" }, "downloads": -1, "filename": "pyfof-0.1.5-cp35-cp35m-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "24205194b52359eaa6a1ecf4fb8cd5ab", "packagetype": "bdist_wheel", "python_version": "cp35", "requires_python": null, "size": 1212689, "upload_time": "2019-07-06T01:09:16", "url": "https://files.pythonhosted.org/packages/39/1e/91ee0998c2fc80d8cd6bf378a4bda02477516a7419678fd4542a8716270a/pyfof-0.1.5-cp35-cp35m-manylinux1_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "728a4038d75cb60e8a112ee34fcc526b", "sha256": "29fb5a565ce0ff1a489317a62335661d733d29ca040779fe7c801cd8dc52d92f" }, "downloads": -1, "filename": "pyfof-0.1.5-cp36-cp36m-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "728a4038d75cb60e8a112ee34fcc526b", "packagetype": "bdist_wheel", "python_version": "cp36", "requires_python": null, "size": 1214492, "upload_time": "2019-07-06T01:09:20", "url": "https://files.pythonhosted.org/packages/7c/7d/8eb5bec63c9d9d9cf97b501e7d9edafd8fc2fd8f012040ed940489d405e5/pyfof-0.1.5-cp36-cp36m-manylinux1_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "786022b213e03f03a1e7d1dd4698d4a1", "sha256": "0ae24730738737220f7acb19bdfdea1fdb338c0f30b21b53269a00a128956a61" }, "downloads": -1, "filename": "pyfof-0.1.5-cp37-cp37m-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "786022b213e03f03a1e7d1dd4698d4a1", "packagetype": "bdist_wheel", "python_version": "cp37", "requires_python": null, "size": 1215428, "upload_time": "2019-07-06T01:09:24", "url": "https://files.pythonhosted.org/packages/16/5c/e04c0d0cf400041295a44a22a1d8761cc555d49e58449e9bc98494af3ebd/pyfof-0.1.5-cp37-cp37m-manylinux1_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "5d090b36576c075fa411113682264595", "sha256": "370b3a43319211d7ba40c2ea135a55425f0967f412c768f8b8814ad352494f58" }, "downloads": -1, "filename": "pyfof-0.1.5.tar.gz", "has_sig": false, "md5_digest": "5d090b36576c075fa411113682264595", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 56550, "upload_time": "2019-07-06T01:11:32", "url": "https://files.pythonhosted.org/packages/18/81/8078c1b0114dd6357f609847675386a17430d495a5a19a8103f50ea3956f/pyfof-0.1.5.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "d8a004981baa8c0842cb9349a33a5596", "sha256": "b91733db08769a01e659524ad1938c519ec31fa98df438aade69cc33e0ea40b2" }, "downloads": -1, "filename": "pyfof-0.1.5-cp27-cp27m-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "d8a004981baa8c0842cb9349a33a5596", "packagetype": "bdist_wheel", "python_version": "cp27", "requires_python": null, "size": 1230291, "upload_time": "2019-07-06T01:09:02", "url": "https://files.pythonhosted.org/packages/f4/71/db94a386a38e77196dbe60d360e6db724f61c98fd627949023d82bcac099/pyfof-0.1.5-cp27-cp27m-manylinux1_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "6b944b3c363710ddea082c9bdb9ba428", "sha256": "dce6cf1625382e5b1f7b2bf6c718d83fa67698dac28dc75f3b0f34a893dac911" }, "downloads": -1, "filename": "pyfof-0.1.5-cp27-cp27mu-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "6b944b3c363710ddea082c9bdb9ba428", "packagetype": "bdist_wheel", "python_version": "cp27", "requires_python": null, "size": 1230264, "upload_time": "2019-07-06T01:09:07", "url": "https://files.pythonhosted.org/packages/59/74/7aa54c8726feacbc481c68672ff52bf779ddc6f2187ff3fc309f37cf9a67/pyfof-0.1.5-cp27-cp27mu-manylinux1_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "0847cb685199f580f1fc505f686abfb3", "sha256": "410fe55228d7063dd9006c94c9638a474cb72e64dee422a93eef134248fd4db7" }, "downloads": -1, "filename": "pyfof-0.1.5-cp34-cp34m-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "0847cb685199f580f1fc505f686abfb3", "packagetype": "bdist_wheel", "python_version": "cp34", "requires_python": null, "size": 1209209, "upload_time": "2019-07-06T01:09:11", "url": "https://files.pythonhosted.org/packages/23/92/70afa090f162b794b1c5d8e644b899eb7a017a0d2385a60c5d706c686961/pyfof-0.1.5-cp34-cp34m-manylinux1_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "24205194b52359eaa6a1ecf4fb8cd5ab", "sha256": "b79f0aff8344a3c7b5d1ed7ac5aaa5f4611320643fcf1ed8bacad1c1ac2b3a43" }, "downloads": -1, "filename": "pyfof-0.1.5-cp35-cp35m-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "24205194b52359eaa6a1ecf4fb8cd5ab", "packagetype": "bdist_wheel", "python_version": "cp35", "requires_python": null, "size": 1212689, "upload_time": "2019-07-06T01:09:16", "url": "https://files.pythonhosted.org/packages/39/1e/91ee0998c2fc80d8cd6bf378a4bda02477516a7419678fd4542a8716270a/pyfof-0.1.5-cp35-cp35m-manylinux1_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "728a4038d75cb60e8a112ee34fcc526b", "sha256": "29fb5a565ce0ff1a489317a62335661d733d29ca040779fe7c801cd8dc52d92f" }, "downloads": -1, "filename": "pyfof-0.1.5-cp36-cp36m-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "728a4038d75cb60e8a112ee34fcc526b", "packagetype": "bdist_wheel", "python_version": "cp36", "requires_python": null, "size": 1214492, "upload_time": "2019-07-06T01:09:20", "url": "https://files.pythonhosted.org/packages/7c/7d/8eb5bec63c9d9d9cf97b501e7d9edafd8fc2fd8f012040ed940489d405e5/pyfof-0.1.5-cp36-cp36m-manylinux1_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "786022b213e03f03a1e7d1dd4698d4a1", "sha256": "0ae24730738737220f7acb19bdfdea1fdb338c0f30b21b53269a00a128956a61" }, "downloads": -1, "filename": "pyfof-0.1.5-cp37-cp37m-manylinux1_x86_64.whl", "has_sig": false, "md5_digest": "786022b213e03f03a1e7d1dd4698d4a1", "packagetype": "bdist_wheel", "python_version": "cp37", "requires_python": null, "size": 1215428, "upload_time": "2019-07-06T01:09:24", "url": "https://files.pythonhosted.org/packages/16/5c/e04c0d0cf400041295a44a22a1d8761cc555d49e58449e9bc98494af3ebd/pyfof-0.1.5-cp37-cp37m-manylinux1_x86_64.whl" }, { "comment_text": "", "digests": { "md5": "5d090b36576c075fa411113682264595", "sha256": "370b3a43319211d7ba40c2ea135a55425f0967f412c768f8b8814ad352494f58" }, "downloads": -1, "filename": "pyfof-0.1.5.tar.gz", "has_sig": false, "md5_digest": "5d090b36576c075fa411113682264595", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 56550, "upload_time": "2019-07-06T01:11:32", "url": "https://files.pythonhosted.org/packages/18/81/8078c1b0114dd6357f609847675386a17430d495a5a19a8103f50ea3956f/pyfof-0.1.5.tar.gz" } ] }