Пространственные алгоритмы и структуры данных (scipy.spatial)#

Пространственные преобразования#

Они содержатся в scipy.spatial.transform подмодуль.

Запросы ближайшего соседа#

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

kd-дерево для быстрого поиска ближайшего соседа.

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

kd-дерево для быстрого поиска ближайшего соседа

Rectangle(максимумы, минимумы)

Класс гиперпрямоугольника.

Метрики расстояния#

Метрики расстояния содержатся в scipy.spatial.distance подмодуль.

Триангуляция Делоне, выпуклые оболочки и диаграммы Вороного#

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

Триангуляция Делоне в N измерениях.

ConvexHull(points[, incremental, qhull_options])

Выпуклые оболочки в N измерениях.

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

Диаграммы Вороного в N измерениях.

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

Диаграммы Вороного на поверхности сферы.

HalfspaceIntersection(halfspaces, interior_point)

Пересечения полупространств в N измерениях.

Вспомогательные функции для построения графиков#

delaunay_plot_2d(tri[, ax])

Построить заданную триангуляцию Делоне в 2-D

convex_hull_plot_2d(hull[, ax])

Построить заданную диаграмму выпуклой оболочки в 2-D

voronoi_plot_2d(vor[, ax])

Построить заданную диаграмму Вороного в 2-D

Смотрите также

Учебник

Симплексное представление#

Симплексы (треугольники, тетраэдры и т.д.), появляющиеся в триангуляции Делоне (N-мерные симплексы), гранях выпуклой оболочки и гребнях диаграммы Вороного (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

Для триангуляций Делоне и выпуклых оболочек, структура соседства симплексов удовлетворяет условию: tess.neighbors[i,j] является соседним симплексом для i-го симплекса, противоположным j-вершина. Это -1 в случае отсутствия соседа.

Грани симплексов выпуклой оболочки также определяют уравнение гиперплоскости:

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

Аналогичные уравнения гиперплоскостей для триангуляции Делоне соответствуют граням выпуклой оболочки на соответствующей N+1-мерной параболоиде.

Объекты триангуляции Делоне предлагают метод для нахождения симплекса, содержащего заданную точку, и вычисления барицентрических координат.

Функции#

tsearch(tri, xi)

Найти симплексы, содержащие заданные точки.

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

Вычислить матрицу расстояний.

minkowski_distance(x, y[, p])

Вычислить расстояние L**p между двумя массивами.

minkowski_distance_p(x, y[, p])

Вычислить p-ю степень расстояния L**p между двумя массивами.

procrustes(data1, data2)

Анализ Прокруста, тест на подобие двух наборов данных.

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

Геометрическая сферическая линейная интерполяция.

Предупреждения / Ошибки, используемые в scipy.spatial#

QhullError

Возникает, когда Qhull сталкивается с ошибкой, например, геометрической вырожденностью, когда опции для разрешения не включены.