开发手册 欢迎您!
软件开发者资料库

SciPy - 空间

SciPy Spatial - 从简单和简单的步骤学习SciPy,从基本到高级概念,包括简介,环境设置,基本功能,集群,常量,Fftpack,集成,插值,输入和输出,Linalg,Ndimage,Optimize,Stats,CSGraph ,空间,ODR,特殊包装。

scipy.spatial软件包可以通过利用 Qhull库来计算一组点的三角测量,Voronoi图和凸壳.此外,它包含用于最近邻点查询的 KDTree实现和用于各种度量的距离计算的实用程序.

Delaunay Triangulations

让我们了解Delaunay三角剖分是什么以及如何在SciPy中使用它们.

什么是Delaunay三角剖分?

在数学和计算几何中,对于平面中离散点的给定集合 P 的Delaunay三角剖分是三角剖分 DT(P),使得 P 中没有点在内部DT(P)中任意三角形的外接圆.

我们可以通过SciPy进行相同的计算.让我们考虑以下示例.

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

上述程序将生成以下输出.

Delaunay Triangulations

共面点数

让我们了解共生点数是什么以及如何在SciPy中使用它们.

什么是共面点?

共面点是位于同一平面内的三个或更多点.回想一下,平面是一个平面,在所有方向上都没有端部延伸.它通常在数学教科书中显示为四边形.

让我们看看如何使用SciPy找到它.让我们考虑以下示例.

from scipy.spatial import Delaunaypoints = 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 ConvexHullpoints = np.random.rand(10, 2) # 30 random points in 2-Dhull = ConvexHull(points)import matplotlib.pyplot as pltplt.plot(points[:,0], points[:,1], 'o')for simplex in hull.simplices:plt.plot(points[simplex,0], points[simplex,1], 'k-')plt.show()

上述程序将生成以下输出.

 Convex Hulls