空间算法和数据结构 (scipy.spatial)#

空间变换#

这些内容包含在 scipy.spatial.transform 子模块中。

最近邻查询#

KDTree(data[, leafsize, compact_nodes, ...])

kd-tree 用于快速最近邻查找。

cKDTree(data[, leafsize, compact_nodes, ...])

kd-树用于快速最近邻查找

Rectangle(maxes, mins)

超矩形类。

距离度量#

距离度量包含在 scipy.spatial.distance 子模块中。

Delaunay 三角剖分,凸包,和 Voronoi 图#

Delaunay(points[, furthest_site, ...])

N 维中的 Delaunay 三角剖分。

ConvexHull(points[, incremental, qhull_options])

N 维空间中的凸包。

Voronoi(points[, furthest_site, ...])

N 维的 Voronoi 图。

SphericalVoronoi(points[, radius, center, ...])

球面上的Voronoi图。

HalfspaceIntersection(halfspaces, interior_point)

N 维中的半空间交集。

绘图助手#

delaunay_plot_2d(tri[, ax])

在二维空间中绘制给定的Delaunay三角剖分

convex_hull_plot_2d(hull[, ax])

在二维平面上绘制给定的凸包图

voronoi_plot_2d(vor[, ax])

在二维平面上绘制给定的Voronoi图

参见

教程

单纯形表示#

在Delaunay细分(N维单纯形)、凸包面和Voronoi脊(N-1维单纯形)中出现的单纯形(三角形、四面体等)以下列方案表示:

tess = Delaunay(points)
hull = ConvexHull(points)
voro = Voronoi(points)

# coordinates of the jth vertex of the ith simplex
tess.points[tess.simplices[i, j], :]        # tessellation element
hull.points[hull.simplices[i, j], :]        # convex hull facet
voro.vertices[voro.ridge_vertices[i, j], :] # ridge between Voronoi cells

对于Delaunay三角剖分和凸包,单纯形的邻域结构满足以下条件:tess.neighbors[i,j] 是第i个单纯形的邻接单纯形,相对于第 j 顶点。如果没有邻接单纯形,则为-1。

凸包面也定义了一个超平面方程:

(hull.equations[i,:-1] * coord).sum() + hull.equations[i,-1] == 0

Delaunay 三角剖分的类似超平面方程对应于相应 N+1-D 抛物面上凸包的各个面。

Delaunay 三角剖分对象提供了一种方法来定位包含给定点的单纯形,以及重心坐标计算。

函数#

tsearch(tri, xi)

查找包含给定点的单纯形。

distance_matrix(x, y[, p, threshold])

计算距离矩阵。

minkowski_distance(x, y[, p])

计算两个数组之间的 L**p 距离。

minkowski_distance_p(x, y[, p])

计算两个数组之间 L**p 距离的 p 次幂。

procrustes(data1, data2)

Procrustes 分析,用于两组数据相似性检验的方法。

geometric_slerp(start, end, t[, tol])

几何球面线性插值。

scipy.spatial 中使用的警告 / 错误#