Clustering¶
Clustering module: ezdxf.math.clustering
- ezdxf.math.clustering.average_cluster_radius(clusters: list[list[Vec2 | Vec3]]) float ¶
Returns the average cluster radius.
- ezdxf.math.clustering.average_intra_cluster_distance(clusters: list[list[Vec2 | Vec3]]) float ¶
Returns the average point-to-point intra cluster distance.
- ezdxf.math.clustering.dbscan(points: list[Vec2 | Vec3], *, radius: float, min_points: int = 4, rtree: RTree | None = None, max_node_size: int = 5) list[list[Vec2 | Vec3]] ¶
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[Vec2 | Vec3], k: int, max_iter: int = 10) list[list[Vec2 | Vec3]] ¶
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