Как получить центр множества точек с помощью Python

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

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

Ответ 1

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

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

Ответ 2

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

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

Ответ 3

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

centroid = positions.mean(axis=0)

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

В общем, Numpy массивы могут быть использованы для всех этих мер в векторизованном способе, который является компактным и очень быстро по сравнению с for петель.