Как получить центр множества точек, используя Python - PullRequest
19 голосов
/ 05 декабря 2010

Я хотел бы получить центральную точку (x, y) фигуры, созданной набором точек.

Как мне это сделать?

Ответы [ 3 ]

26 голосов
/ 05 декабря 2010

Если вы имеете в виду центроид, вы просто получаете среднее значение всех баллов.

x = [p[0] for p in points]
y = [p[1] for p in points]
centroid = (sum(x) / len(points), sum(y) / len(points))
6 голосов
/ 05 декабря 2010

Я предполагаю, что точка является кортежем типа (x, y).

x,y=zip(*points)
center=(max(x)+min(x))/2., (max(y)+min(y))/2.
2 голосов
/ 12 апреля 2018

Если набор точек представляет собой массив NumPy positions размеров N x 2, то центр тяжести просто задается следующим образом:

centroid = positions.mean(axis=0)

Он непосредственно даст вам 2 координаты в массиве NUMPY.

Как правило, для всех этих мер векторизованным образом можно использовать массивы numpy, которые являются компактными и очень быстрыми по сравнению с for петлями.

...