web-dev-qa-db-ja.com

Python)を使用して点のセットの中心を取得する方法

一連の点によって作成された図形の中心点(x、y)を取得したいと思います。

どうすればよいですか?

21
Dominik Szopa

重心を意味する場合は、すべてのポイントの平均を取得するだけです。

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

ポイントは(x、y)のようなタプルだと思います。

x,y=Zip(*points)
center=(max(x)+min(x))/2., (max(y)+min(y))/2.
6
Kabie

ポイントのセットがサイズNx2のnumpy配列positionsである場合、重心は単純に次の式で与えられます。

centroid = positions.mean(axis=0)

それはあなたに2つの座標とnumpy配列を直接与えます。

一般に、numpy配列は、ベクトル化された方法でこれらすべてのメジャーに使用できます。これは、コンパクトで、forループと比較して非常に高速です。

3
meduz