- SciPy 教程
- SciPy - 首页
- SciPy - 简介
- SciPy - 环境设置
- SciPy - 基本功能
- SciPy - 聚类
- SciPy - 常量
- SciPy - FFTpack
- SciPy - 积分
- SciPy - 插值
- SciPy - 输入和输出
- SciPy - 线性代数 (Linalg)
- SciPy - N维图像处理 (Ndimage)
- SciPy - 优化
- SciPy - 统计
- SciPy - 稀疏图 (CSGraph)
- SciPy - 空间
- SciPy - 正交距离回归 (ODR)
- SciPy - 特殊函数包
- SciPy 有用资源
- SciPy - 参考
- SciPy - 快速指南
- SciPy - 有用资源
- SciPy - 讨论
SciPy - 空间
scipy.spatial 包利用Qhull 库可以计算一组点的三角剖分、Voronoi 图和凸包。此外,它还包含用于最近邻点查询的KDTree 实现以及用于各种度量距离计算的实用程序。
德劳内三角剖分
让我们了解什么是德劳内三角剖分以及如何在 SciPy 中使用它们。
什么是德劳内三角剖分?
在数学和计算几何中,对于平面中给定的一组离散点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()
上述程序将生成以下输出。
广告