Ответ 1
Если вы имеете в виду центроид, вы просто получаете среднее значение для всех очков.
x = [p[0] for p in points]
y = [p[1] for p in points]
centroid = (sum(x) / len(points), sum(y) / len(points))
Я хотел бы получить центральную точку (x, y) фигуры, созданной набором точек.
Как это сделать?
Если вы имеете в виду центроид, вы просто получаете среднее значение для всех очков.
x = [p[0] for p in points]
y = [p[1] for p in points]
centroid = (sum(x) / len(points), sum(y) / len(points))
Я предполагаю, что точка является кортежем вроде (x, y).
x,y=zip(*points)
center=(max(x)+min(x))/2., (max(y)+min(y))/2.
Если набор точек представляет собой массив значений positions
N x 2, то центр тяжести просто задается выражением:
centroid = positions.mean(axis=0)
Он непосредственно даст вам 2 координаты в виде массива.
В общем, Numpy массивы могут быть использованы для всех этих мер в векторизованном способе, который является компактным и очень быстро по сравнению с for
петель.