如何使用Python获得点集的中心

时间:2010-12-04 21:22:00

标签: python matplotlib triangulation

我想获得由一组点创建的图形的中心点(x,y)。

我该怎么做?

3 个答案:

答案 0 :(得分:24)

如果你的意思是质心,你只需得到所有点的平均值。

x = [p[0] for p in points]
y = [p[1] for p in points]
centroid = (sum(x) / len(points), sum(y) / len(points))

答案 1 :(得分:6)

我认为一个点是像(x,y)那样的元组。

x,y=zip(*points)
center=(max(x)+min(x))/2., (max(y)+min(y))/2.

答案 2 :(得分:2)

如果点集是大小为N x 2的numpy数组positions,那么质心只是由下式给出:

centroid = positions.mean(axis=0)

它会直接为你提供一个numpy数组的坐标。

通常,numpy数组可以以矢量化方式用于所有这些度量,与for循环相比,它是紧凑的,非常快。