scipy . Spatial–空间数据结构和算法
原文:https://www . geesforgeks . org/scipy-space-space-data-structures-and-algorithms/
在本文中,我们将看到空间数据结构和算法,它用于在几何空间中表示数据。
什么是空间数据结构?
空间包通过利用 Qhull 库来计算一组点的三角剖分、Voronoi 图和凸包。此外,它包含最近邻点查询的 KDTree 实现和各种度量中距离计算的实用程序。
示例 1:德劳内三角测量
在数学和计算几何中,一个平面中给定的离散点集合 p 的德劳奈三角剖分是一个三角剖分 DT(p),这样 DT(p)中的任何三角形的外接圆内都没有点 p。
计算机编程语言
from scipy.spatial import Delaunay
import numpy as np
import matplotlib.pyplot as plt
points = np.array([[1, 4], [2, 1], [3, 0],
[0, 2], [4, 3]])
tri = Delaunay(points)
plt.triplot(points[:, 0], points[:, 1], tri.simplices.copy())
plt.plot(points[:, 0], points[:, 1], 'o')
plt.show()
输出:
示例 2:共面点
共面点是位于同一平面上的三个或更多的点。回想一下,平面是一个平面,它向各个方向延伸,没有尽头。
计算机编程语言
from scipy.spatial import Delaunay
import numpy as np
points = np.array([[0, 0], [0, 1], [1, 0],
[1, 1], [1, 1]])
tri = Delaunay(points)
print(tri.simplices)
print(tri.coplanar)
输出:
[[3 1 0]
[2 3 0]]
[[4 0 3]]
示例 3:凸包
欧氏空间(或者更一般地说,实数上的仿射空间)中的一组点 X 的凸包或凸包络是包含 X 的最小凸集。
计算机编程语言
from scipy.spatial import ConvexHull
import numpy as np
import matplotlib.pyplot as plt
points = np.random.rand(10, 2)
hull = ConvexHull(points)
plt.plot(points[:, 0], points[:, 1], 'o')
for simplex in hull.simplices:
plt.plot(points[simplex, 0], points[simplex, 1], 'k-')
plt.show()
输出:
示例 4:关键绩效指标树
kd-tree 是一种快速的最近邻查找。和 Kdtree()方法返回 kd-tree 对象
Python 3
from scipy.spatial import KDTree
points = np.random.rand(10, 2)
kdtree = KDTree(points)
result = kdtree.query((1, 1))
print(result)
输出:
(0.5144859720297681, 9)
版权属于:月萌API www.moonapi.com,转载请注明出处