Scipy-spatial

提供:Dev Guides
移動先:案内検索

SciPy-空間

  • scipy.spatialパッケージ*は、* Qhullライブラリ*を利用して、ポイントセットの三角形分割、ボロノイ図、凸包を計算できます。 さらに、最近隣ポイントクエリ用の* KDTree実装*と、さまざまなメトリックでの距離計算用のユーティリティが含まれています。

ドローネ三角形分割

Delaunay三角形分割とは何か、それらがSciPyでどのように使用されるかを理解しましょう。

ドローネ三角形分割とは何ですか?

数学および計算幾何学では、平面内の離散点の特定のセット P に対するドロネー三角形分割は、 P の点がDT(Pの三角形の外接円の内側にない三角形分割* DT(P)*です。 )。

SciPyを通じて同じことを計算できます。 次の例を考えてみましょう。

from scipy.spatial import Delaunay
points = np.array([[tri = Delaunay(points)
import matplotlib.pyplot as plt
plt.triplot(points[:,0], points[:,1], tri.simplices.copy())
plt.plot(points[:,0], points[:,1], 'o')
plt.show()

上記のプログラムは、次の出力を生成します。

Delaunay Triangulations

コプラナーポイント

コプラナーポイントとは何か、そしてそれらがSciPyでどのように使用されるかを理解しましょう。

コプラナーポイントとは何ですか?

共面点は、同じ平面にある3つ以上の点です。 平面は平らな表面であり、すべての方向に無限に広がることを思い出してください。 通常、数学の教科書では四面図として表示されます。

SciPyを使用してこれを見つける方法を見てみましょう。 次の例を考えてみましょう。

from scipy.spatial import Delaunay
points = np.array([[tri = Delaunay(points)
print tri.coplanar

上記のプログラムは、次の出力を生成します。

array([[dtype = int32)

つまり、ポイント4は三角形0と頂点3の近くにありますが、三角形分割には含まれていません。

凸包

凸包とは何か、SciPyでどのように使用されるかを理解しましょう。

凸包とは何ですか?

数学では、ユークリッド平面またはユークリッド空間(またはより一般的には実数上のアフィン空間)にある点Xの集合の*凸包*または*凸包*は、最小の*凸集合*です。 Xを含む

詳細を理解するために、次の例を考えてみましょう。

from scipy.spatial import ConvexHull
points = np.random.rand(10, 2) # 30 random points in 2-D
hull = ConvexHull(points)
import matplotlib.pyplot as plt
plt.plot(points[:,0], points[:,1], 'o')
for simplex in hull.simplices:
plt.plot(points[simplex,0], points[simplex,1], 'k-')
plt.show()

上記のプログラムは、次の出力を生成します。

凸包