Python Scipy:Qhull选项确保每个点在不同的Voronoi区域中隔离

Python Scipy:Qhull选项确保每个点在不同的Voronoi区域中隔离,python,numpy,scipy,voronoi,qhull,Python,Numpy,Scipy,Voronoi,Qhull,我正在研究一个需要对平面进行Voronoi细分的问题。我认为在Voronoi细分中,每个点都将包含在Voronoi映射的唯一单元中,例如 在该图中,点是黑点,每个点都包含在一个彩色单元格中。但是,使用我的数据集上的scikit实现,我获得的区域/单元数小于输入点数: from scipy.spatial import Voronoi import numpy as np import json # data is here: https://gist.github.com/duhaime/6

我正在研究一个需要对平面进行Voronoi细分的问题。我认为在Voronoi细分中,每个点都将包含在Voronoi映射的唯一单元中,例如

在该图中,点是黑点,每个点都包含在一个彩色单元格中。但是,使用我的数据集上的scikit实现,我获得的区域/单元数小于输入点数:

from scipy.spatial import Voronoi
import numpy as np
import json

# data is here: https://gist.github.com/duhaime/69ce65c6849708b31ba855d49d2812e6
a = np.array(json.load(open('umap.json')))
v = Voronoi(a)

print(a.shape) # prints (172502, 2)
print(len(v.regions)) # prints 169526
引导我查找
v.point\u区域
包含每个输入点的一个条目。
v.point\u region
的第i个成员表示a中第i个值所属的
v.regions
索引。例如,
v.point\u region[17]
=34意味着
a[17]
属于
v.region[34]
。我没有意识到多个点可能属于同一个Voronoi区域


这就引出了我的问题:有没有Qhull选项可以指定,以确保每个点都在Voronoi贴图中的不同单元中隔离?也就是说,我希望每个细胞有一个唯一的区域。任何其他人能提供的关于这个问题的建议都将不胜感激

您的数据中存在重复项
np.unique(a,axis=0)。shape[0]
返回169525。有那么简单吗@Ondro?@Ondro如果你的评论是一个答案,我会接受的!你一定搞定了!