Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在scipy.spatial.Delaunay中,find_simplex()方法返回什么?_Python_Scipy_Convex Hull - Fatal编程技术网

Python 在scipy.spatial.Delaunay中,find_simplex()方法返回什么?

Python 在scipy.spatial.Delaunay中,find_simplex()方法返回什么?,python,scipy,convex-hull,Python,Scipy,Convex Hull,我需要找出我的一些点是在凸包内还是在凸包外,我使用的答案是:() 但是当我测试它时,返回的数组有点混乱。例如,如果我创建两个相同的阵列,使用其中一个来创建外壳,然后测试第二个阵列的点是否在该外壳中,我得到以下结果: from scipy.spatial import Delaunay pts_outer = np.array([[0, 0], [0, 5], [5, 0], [5, 5]]) pts_inner = pts_outer hull = Delaunay(pts_outer) hul

我需要找出我的一些点是在凸包内还是在凸包外,我使用的答案是:()

但是当我测试它时,返回的数组有点混乱。例如,如果我创建两个相同的阵列,使用其中一个来创建外壳,然后测试第二个阵列的点是否在该外壳中,我得到以下结果:

from scipy.spatial import Delaunay
pts_outer = np.array([[0, 0], [0, 5], [5, 0], [5, 5]])
pts_inner = pts_outer
hull = Delaunay(pts_outer)
hull.find_simplex(pts_inner)

Out[29]: array([0, 0, 1, 1], dtype=int32)
该方法的文档只说它返回:“包含每个点的简单图索引。三角剖分之外的点的值为-1”

我知道
1
是船体内部的点,
-1
是船体外部的点,但是什么是0?它是位于船体边界上的点吗?但是为什么只有两点呢?应该是他们所有人

如果我稍微修改测试阵列:

pts_inner = np.array([[0, 0], [0, 5], [5, -1], [5, 5]])
hull.find_simplex(pts_inner)

Out[31]: array([ 0,  0, -1,  0], dtype=int32)
前两个点得到了相同的指数,第三个点得到了一个-1,正如计划的那样,但第四个点由于某种原因已更改为0,即使船体和点完全相同


有人知道如何解释这些结果吗;dr:它返回包含该点的三角形的索引。如果有多个三角形包含索引,它并不总是选择相同的索引

我想你误解了“它返回:包含每个点的单形索引。三角剖分之外的点的值为-1。”

我的解释是,
Delaunay(pts_outer)
分别用索引0和1对矩形进行三角化。然后
hull.find_simplex(pts_inner)
retrunning
[0,0,1,1]
表示前两点位于三角形0中,后两点位于三角形1中


最后有点奇怪的是,
find_simplex
现在告诉你你的点
[5,5]
在三角形1中。但这并不是不正确的,因为点
[5,5]
在两个三角形中。

哦,太酷了!谢谢你!我完全误解了文件。现在这让事情变得容易了。关于第4点为什么会改变指数,我仍然感到困惑,但只要不是“-1”,我就不在乎。