Clustering

Clustering module: ezdxf.math.clustering

ezdxf.math.clustering.average_cluster_radius(clusters: list[list[AnyVec]]) → float

Returns the average cluster radius.

ezdxf.math.clustering.average_intra_cluster_distance(clusters: list[list[AnyVec]]) → float

Returns the average point-to-point intra cluster distance.

ezdxf.math.clustering.dbscan(points: list[AnyVec], *, radius: float, min_points: int = 4, rtree: Optional[RTree] = None, max_node_size: int = 5) → list[list[AnyVec]]

DBSCAN clustering.

https://en.wikipedia.org/wiki/DBSCAN

Parameters:
  • points – list of points to cluster
  • radius – radius of the dense regions
  • min_points – minimum number of points that needs to be within the radius for a point to be a core point (must be >= 2)
  • rtree – optional RTree
  • max_node_size – max node size for internally created RTree
Returns:

list of clusters, each cluster is a list of points

ezdxf.math.clustering.k_means(points: list[AnyVec], k: int, max_iter: int = 10) → list[list[AnyVec]]

K-means clustering.

https://en.wikipedia.org/wiki/K-means_clustering

Parameters:
  • points – list of points to cluster
  • k – number of clusters
  • max_iter – max iterations
Returns:

list of clusters, each cluster is a list of points