我想获得由一组点创建的图形的中心点(x,y)。
我该怎么做?
答案 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
循环相比,它是紧凑的,非常快。