{ "info": { "author": "", "author_email": "", "bugtrack_url": null, "classifiers": [], "description": "Home-page: https://github.com/EelcoHoogendoorn/Numpy_arraysetops_EP\nAuthor: Eelco Hoogendoorn\nAuthor-email: hoogendoorn.eelco@gmail.com\nLicense: Freely Distributable\nDescription: |Build Status| |Build status|\n \n Numpy indexed operations\n ========================\n \n This package contains functionality for indexed operations on numpy ndarrays, providing efficient vectorized functionality such as grouping and set operations.\n \n * Rich and efficient grouping functionality:\n \n - splitting of values by key-group\n - reductions of values by key-group\n \n * Generalization of existing array set operation to nd-arrays, such as:\n \n - unique\n - union\n - difference\n - exclusive (xor)\n - contains / in (in1d)\n \n * Some new functions:\n \n - indices: numpy equivalent of list.index\n - count: numpy equivalent of collections.Counter\n - mode: find the most frequently occuring items in a set\n - multiplicity: number of occurrences of each key in a sequence\n - count\\_table: like R's table or pandas crosstab, or an ndim version of np.bincount\n \n Some brief examples to give an impression hereof:\n \n .. code:: python\n \n # three sets of graph edges (doublet of ints)\n edges = np.random.randint(0, 9, (3, 100, 2))\n # find graph edges exclusive to one of three sets\n ex = exclusive(*edges)\n print(ex)\n # which edges are exclusive to the first set?\n print(contains(edges[0], ex))\n # where are the exclusive edges relative to the totality of them?\n print(indices(union(*edges), ex))\n # group and reduce values by identical keys\n values = np.random.rand(100, 20)\n # and so on...\n print(group_by(edges[0]).median(values))\n \n Installation\n ------------\n \n .. code:: python\n \n > conda install numpy-indexed -c conda-forge\n \n or\n \n .. code:: python\n \n > pip install numpy-indexed\n \n See: https://pypi.python.org/pypi/numpy-indexed\n \n Design decisions:\n -----------------\n \n This package builds upon a generalization of the design pattern as can\n be found in numpy.unique. That is, by argsorting an ndarray, many\n subsequent operations can be implemented efficiently and in a vectorized\n manner.\n \n The sorting and related low level operations are encapsulated into a\n hierarchy of Index classes, which allows for efficient lookup of many\n properties for a variety of different key-types. The public API of this\n package is a quite thin wrapper around these Index objects.\n \n The two complex key types currently supported, beyond standard sequences\n of sortable primitive types, are ndarray keys (i.e, finding unique\n rows/columns of an array) and composite keys (zipped sequences). For the\n exact casting rules describing valid sequences of key objects to index\n objects, see as\\_index().\n \n Todo and open questions:\n ------------------------\n \n - There may be further generalizations that could be built on top of\n these abstractions. merge/join functionality perhaps?\n \n .. |Build Status| image:: https://travis-ci.org/EelcoHoogendoorn/Numpy_arraysetops_EP.svg?branch=master\n :target: https://travis-ci.org/EelcoHoogendoorn/Numpy_arraysetops_EP\n .. |Build status| image:: https://ci.appveyor.com/api/projects/status/h7w191ovpa9dcfum?svg=true\n :target: https://ci.appveyor.com/project/clinicalgraphics/numpy-arraysetops-ep\n \nKeywords: numpy group_by set-operations indexing\nPlatform: Any\nClassifier: Development Status :: 4 - Beta\nClassifier: Intended Audience :: Science/Research\nClassifier: Intended Audience :: Developers\nClassifier: Topic :: Utilities\nClassifier: Topic :: Scientific/Engineering\nClassifier: License :: Freely Distributable\nClassifier: Operating System :: MacOS :: MacOS X\nClassifier: Operating System :: Microsoft :: Windows\nClassifier: Operating System :: POSIX\nClassifier: Programming Language :: Python\nClassifier: Programming Language :: Python :: 2.7\nClassifier: Programming Language :: Python :: 3.5\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "numpy-indexed", "package_url": "https://pypi.org/project/numpy-indexed/", "platform": "", "project_url": "https://pypi.org/project/numpy-indexed/", "project_urls": null, "release_url": "https://pypi.org/project/numpy-indexed/0.3.5/", "requires_dist": [ "numpy", "future" ], "requires_python": "", "summary": "This package contains functionality for indexed operations on numpy ndarrays, providing efficient vectorized functionality such as grouping and set operations.", "version": "0.3.5" }, "last_serial": 3806699, "releases": { "0.2.10": [ { "comment_text": "", "digests": { "md5": "a4e106545192d13efa0cbcb222cd905a", "sha256": "85b00a364fad71a8ac5cbd5c95a28051dc5a64cfa7436987c2a6fba37e164807" }, "downloads": -1, "filename": "numpy-indexed-0.2.10.zip", "has_sig": false, "md5_digest": "a4e106545192d13efa0cbcb222cd905a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 30012, "upload_time": "2016-04-08T20:34:30", "url": "https://files.pythonhosted.org/packages/da/d8/bc61454ff2ee853d64d34c6215e9863cedb65618e0faab8275aa3c90cfb4/numpy-indexed-0.2.10.zip" } ], "0.2.11": [ { "comment_text": "", "digests": { "md5": "2f37c804c0428194a73ff4ab27e73a2a", "sha256": "7b5ce20ffdba44ad06bc88797641892b07aaa5fa8d02323c9b47974166417217" }, "downloads": -1, "filename": "numpy-indexed-0.2.11.zip", "has_sig": false, "md5_digest": "2f37c804c0428194a73ff4ab27e73a2a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 30894, "upload_time": "2016-04-15T10:31:33", "url": "https://files.pythonhosted.org/packages/fe/27/b454714e3197ce9a83b7ebede651cf1494a1a4fa883c595590226838ba30/numpy-indexed-0.2.11.zip" } ], "0.2.12": [ { "comment_text": "", "digests": { "md5": "b43b73971ea87848f620723c7e051a12", "sha256": "85524daf7faf19b96600f9af7489eb9bb407f4c006dcc3807d509ae030fbae84" }, "downloads": -1, "filename": "numpy-indexed-0.2.12.zip", "has_sig": false, "md5_digest": "b43b73971ea87848f620723c7e051a12", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 31244, "upload_time": "2016-04-17T19:31:19", "url": "https://files.pythonhosted.org/packages/f1/5e/b150c5ad1b83c41a7171bd750c2ef5da696d2676c9c34660ce3d9b2cbd2f/numpy-indexed-0.2.12.zip" } ], "0.2.14": [ { "comment_text": "", "digests": { "md5": "830fecc5e1d77d265159bc5c1c7b9806", "sha256": "5b6decaed068bd765fd467d44442a3f3e14d8a99b153b17d6521824d3f80bda5" }, "downloads": -1, "filename": "numpy-indexed-0.2.14.zip", "has_sig": false, "md5_digest": "830fecc5e1d77d265159bc5c1c7b9806", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 29944, "upload_time": "2016-04-20T18:09:45", "url": "https://files.pythonhosted.org/packages/57/9a/36abb5e9b72e10a0891015d1f2e67aa7fad18024d00a611f7e7a090b4172/numpy-indexed-0.2.14.zip" } ], "0.2.16": [ { "comment_text": "", "digests": { "md5": "5a41fc2e0f797353fa5c66277f56fe09", "sha256": "a188813465a334283b1c1cbeb3f38654f25457b94a9729733573eeada0eeb66d" }, "downloads": -1, "filename": "numpy-indexed-0.2.16.zip", "has_sig": false, "md5_digest": "5a41fc2e0f797353fa5c66277f56fe09", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 30176, "upload_time": "2016-04-27T07:42:19", "url": "https://files.pythonhosted.org/packages/d4/86/b2c61a731316f9199112662e3b45b8ad4c5ed97717bd97183b9401d255dd/numpy-indexed-0.2.16.zip" } ], "0.2.18": [ { "comment_text": "", "digests": { "md5": "28022791fc658bf7b6d1786ffb0542a5", "sha256": "46ba161bd74aa4c758239f11fa2fd969136bfae23bebf669ea922d981e18fb7a" }, "downloads": -1, "filename": "numpy-indexed-0.2.18.zip", "has_sig": false, "md5_digest": "28022791fc658bf7b6d1786ffb0542a5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 30310, "upload_time": "2016-04-29T13:14:42", "url": "https://files.pythonhosted.org/packages/0e/d0/33910ce9eeaa142047503269e3f4c33b9d578d537e3f0c364fb3cba917cc/numpy-indexed-0.2.18.zip" } ], "0.2.19": [ { "comment_text": "", "digests": { "md5": "be62d740601e946cf65cdca41117d729", "sha256": "9dca45280313e9a8ebbb4184d5a966bb2eecab1f6fa6be37f0107f1743a07a92" }, "downloads": -1, "filename": "numpy-indexed-0.2.19.zip", "has_sig": false, "md5_digest": "be62d740601e946cf65cdca41117d729", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 30525, "upload_time": "2016-05-02T06:15:54", "url": "https://files.pythonhosted.org/packages/c0/a1/54c57e1581e21aeb589e95de7f02cd24d4ebea4945274aaf6c88c44d151b/numpy-indexed-0.2.19.zip" } ], "0.2.7": [], "0.2.8": [ { "comment_text": "", "digests": { "md5": "960b7821c332e4b3c5744a436c803e38", "sha256": "35f49baa309b6b888e90556f6f57c370021887eca8cabccb9f0ffb1b8a50eecb" }, "downloads": -1, "filename": "numpy-indexed-0.2.8.zip", "has_sig": false, "md5_digest": "960b7821c332e4b3c5744a436c803e38", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 29143, "upload_time": "2016-04-02T11:51:31", "url": "https://files.pythonhosted.org/packages/f2/c5/fb20a1d9844e9676b8021d6562ff0babaa4013944096da4554ac07df2259/numpy-indexed-0.2.8.zip" } ], "0.2.9": [ { "comment_text": "", "digests": { "md5": "799a2ad196c4d9222669c20c61a81d23", "sha256": "df866c721f2c158f25cc50f2c553c1793b715446523c62a2bb8bdfb1ecc8dcfb" }, "downloads": -1, "filename": "numpy-indexed-0.2.9.zip", "has_sig": false, "md5_digest": "799a2ad196c4d9222669c20c61a81d23", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 29184, "upload_time": "2016-04-02T12:12:07", "url": "https://files.pythonhosted.org/packages/e9/4a/458c16d24e69ec259d7eddcc6c6044367deff19720c00d24f2e089bd2ae4/numpy-indexed-0.2.9.zip" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "b89e4deed3622d85c346344b2e2c61bd", "sha256": "7177fde97abb7b4e9557ab4a0b0129604c03ac2a07153655ff78df656b74ffa5" }, "downloads": -1, "filename": "numpy-indexed-0.3.0.zip", "has_sig": false, "md5_digest": "b89e4deed3622d85c346344b2e2c61bd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 31019, "upload_time": "2016-05-13T19:46:06", "url": "https://files.pythonhosted.org/packages/3d/2e/9f43e8d229f78a1fa9b766a5e0240d8db983efb620bf726544a2f741f4d9/numpy-indexed-0.3.0.zip" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "60581fbfcd3e660053f8a13d36f28112", "sha256": "8c2732a09b41026d8e07e7342fd0efc49ec7649f47577ec8ef02d07277f5d397" }, "downloads": -1, "filename": "numpy-indexed-0.3.1.zip", "has_sig": false, "md5_digest": "60581fbfcd3e660053f8a13d36f28112", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 31175, "upload_time": "2016-05-16T10:00:20", "url": "https://files.pythonhosted.org/packages/9e/a2/c0080c6cec3bef2e2c2e5b6f44b0e8e24848f8afceffc1867c128f6ff275/numpy-indexed-0.3.1.zip" } ], "0.3.2": [ { "comment_text": "", "digests": { "md5": "4f4a9c26241286e3fbab38143166bb86", "sha256": "a491e50ba15eb074e2f6287a8b6bd79599ed8df41d0de7277bd57858f1aa29c5" }, "downloads": -1, "filename": "numpy-indexed-0.3.2.zip", "has_sig": false, "md5_digest": "4f4a9c26241286e3fbab38143166bb86", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 31376, "upload_time": "2016-05-17T17:56:14", "url": "https://files.pythonhosted.org/packages/c9/c8/75af738f165cf2ee1684d92c34d570fb75787903438a36744f5d3c71ae8b/numpy-indexed-0.3.2.zip" } ], "0.3.3": [ { "comment_text": "", "digests": { "md5": "7fc80b3816a3731be4b7391f7c3b9b7f", "sha256": "66b0e70f51b5829fb583098331ff3a7ea841eea1f8b9301252f3995a54a03905" }, "downloads": -1, "filename": "numpy-indexed-0.3.3.zip", "has_sig": false, "md5_digest": "7fc80b3816a3731be4b7391f7c3b9b7f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 31959, "upload_time": "2016-07-26T17:55:44", "url": "https://files.pythonhosted.org/packages/3c/c1/afb374375ba90c044fe0a97fb7ae7609440e1ebd86d28d3b08e71dfd6998/numpy-indexed-0.3.3.zip" } ], "0.3.4": [ { "comment_text": "", "digests": { "md5": "0b0a608f71ed6725f2c4eb7ec01dacdf", "sha256": "61225a982cbb10e2c67a22028afa36138494e08590d3190e69f0782300856191" }, "downloads": -1, "filename": "numpy-indexed-0.3.4.zip", "has_sig": false, "md5_digest": "0b0a608f71ed6725f2c4eb7ec01dacdf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 32260, "upload_time": "2016-07-28T15:54:13", "url": "https://files.pythonhosted.org/packages/c2/62/7cafd45b9d76b9e39ea03f2df3f9ea80fd71e8692c5b143367e36ad1a378/numpy-indexed-0.3.4.zip" } ], "0.3.5": [ { "comment_text": "", "digests": { "md5": "fbf343e6c61e40bc0d751d1468494ac6", "sha256": "625dfa932211d82d15ab9ade45faddeddba90fc7e9f53b715dc007b4a995bd58" }, "downloads": -1, "filename": "numpy_indexed-0.3.5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "fbf343e6c61e40bc0d751d1468494ac6", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 18961, "upload_time": "2018-04-25T12:48:54", "url": "https://files.pythonhosted.org/packages/4c/90/fe830d577400954db57a88f7022efef095745e1df4256ca5171d659d4177/numpy_indexed-0.3.5-py2.py3-none-any.whl" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "fbf343e6c61e40bc0d751d1468494ac6", "sha256": "625dfa932211d82d15ab9ade45faddeddba90fc7e9f53b715dc007b4a995bd58" }, "downloads": -1, "filename": "numpy_indexed-0.3.5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "fbf343e6c61e40bc0d751d1468494ac6", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 18961, "upload_time": "2018-04-25T12:48:54", "url": "https://files.pythonhosted.org/packages/4c/90/fe830d577400954db57a88f7022efef095745e1df4256ca5171d659d4177/numpy_indexed-0.3.5-py2.py3-none-any.whl" } ] }