SciPy空间 SciPy CSGraph SciPy ODR 所述 scipy.spatial包 可以计算三角剖分,Voronoi图和凸包的一组点的,通过利用 Qhull库 。此外,它包含用于最近邻点查询的 KDTree实现 以及用于各种度量中的距离计算的实用程序。 德劳内三角形 让我们了解Delaunay Triangulations是什么以及它们如何用于SciPy。 什么是Delaunay Triangulations? 在数学和计算几何形状,Delaunay三角剖分为一组给定 P 的平面中的离散点是三角测量 DT(P) ,使得在没有点 P 是任何三角形的在DT(P)的外接圆的内侧。 我们可以通过SciPy进行相同的计算。让我们考虑下面的例子。 from scipy.spatial import Delaunay points = np.array([[0, 4], [2, 1.1], [1, 3], [1, 2]]) 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() 上述程序将生成以下输出。 共面点 让我们了解共面点是什么以及它们如何用于SciPy。 什么是共面点? 共平面点是三个或更多点位于同一平面上。回想一下,一架飞机是一个平坦的表面,在所有的方向上都没有终点。它通常在数学教科书中显示为四面体。 让我们看看我们如何使用SciPy找到这个。让我们考虑下面的例子。 from scipy.spatial import Delaunay points = np.array([[0, 0], [0, 1], [1, 0], [1, 1], [1, 1]]) tri = Delaunay(points) print tri.coplanar 上述程序将生成以下输出。 array([[4, 0, 3]], 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() 上述程序将生成以下输出。 SciPy CSGraph SciPy ODR