SciPy Spatial

SciPy Spatial

scipy.spatial包 通过利用 Qhull库 ,可以计算一组点的三角形、Voronoi图和凸面图 此外,它还包含用于最近邻点查询的 KDTree实现 和用于各种度量的距离计算的工具。

Delaunay三角计算

让我们了解一下什么是Delaunay Triangulations,以及它们在SciPy中是如何使用的。

什么是Delaunay Triangulations

在数学和计算几何学中,对于一个平面上的离散点集合 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 - Spatial

共面点

让我们了解一下什么是共面点,以及它们在SciPy中是如何使用的。

什么是Coplanar点

共面点是指位于同一平面内的三个或多个点。回顾一下,平面是一个平坦的表面,它向各个方向无端延伸。在数学课本中,它通常被显示为一个四边形。

让我们看看如何用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 - Spatial

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程