Skip to main content

Distance-based clustering tool

Project description

yacluster
========

yacluster is a Python library which does `distance-based clustering`_ for 2D points. Only Python 3.4+ is officially supported, though other versions may work too. The project uses `semantic versioning`_ and is licensed under `the MIT license`_.

Usage
-----

The main utility is the ``yacluster.cluster`` function which takes two arguments:

* an iterable which yields two-element point tuples, each containing:
- a two-element tuple with X and Y coordinates;
- the actual object being clustered (or its identifier);
* a distance threshold; if a point is included into a cluster, it must be closer to its centroid than this value.

The function returns an iterable of two-element cluster tuples, each containing:

* a two-element tuple with X and Y coordinates of the cluster center;
* a list of objects belonging to the cluster.

Cluster’s centroid is defined as average coordinates of the cluster’s members.

Example
-------

.. code-block:: python

from yacluster import cluster

points = [
((1, 1.0), 'Foo'),
((1.0, 2), 'Bar'),
((2.0, 2.0), 'Baz'),
]
threshold = 1.1
expected_result = [
((1.0, 1.5), ['Foo', 'Bar']),
((2.0, 2.0), ['Baz']),
]
assert expected_result == list(cluster(points, threshold))

Development
-----------

Development requirements are listed in the ``requirements-development.txt`` file.

To run tests, execute ``./tests.py``.

Coding style is checked using `flake8 3.x`_.

.. _distance-based clustering: https://developers.google.com/maps/articles/toomanymarkers#distancebasedclustering
.. _flake8 3.x: http://flake8.pycqa.org/en/latest/
.. _semantic versioning: http://semver.org
.. _the MIT license: LICENSE

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

yacluster-1.0.0.tar.gz (5.6 kB view details)

Uploaded Source

Built Distribution

yacluster-1.0.0-py3-none-any.whl (5.0 kB view details)

Uploaded Python 3

File details

Details for the file yacluster-1.0.0.tar.gz.

File metadata

  • Download URL: yacluster-1.0.0.tar.gz
  • Upload date:
  • Size: 5.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for yacluster-1.0.0.tar.gz
Algorithm Hash digest
SHA256 4ad583e5169c2bd360f3bda999624d413ddcd01e4934bee12f356860fe02f551
MD5 57f4caedf2d580c2751b1354c87018ae
BLAKE2b-256 8484bdd5757415eaab3872ada18a64c8047a9a476be75ea0c1ea465fc9f5e321

See more details on using hashes here.

File details

Details for the file yacluster-1.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for yacluster-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ef7e103a9dca2ca0445f204c36c9fbdc32f20d8a667062ef0f4c55aa696e41be
MD5 43d3f498af66da99e21fb323e3bc8089
BLAKE2b-256 13cd753bddc2c22be14785b4b5506dd790f856cb0c2c3f3472aaaa441d760c58

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page