<p>如果你的散点很好地符合立方体形状,一种方法可以是使用<a href="https://docs.scipy.org/doc/scipy-0.18.1/reference/generated/scipy.interpolate.griddata.html" rel="nofollow noreferrer">^{<cd1>}</a>插值到适合点云的规则数据网格上(因此避免了nans),然后使用这个规则的值网格作为<a href="https://docs.scipy.org/doc/scipy/reference/generated/scipy.interpolate.interpn.html" rel="nofollow noreferrer">^{<cd2>}</a>的输入,这确实有助于线性外推(但需要一个规则的网格作为输入)。在</p>
<p>通过这种方式,您可以像以前一样使用<a href="https://docs.scipy.org/doc/scipy-0.18.1/reference/generated/scipy.interpolate.griddata.html" rel="nofollow noreferrer">^{<cd1>}</a>来处理分散点的凸壳内的所有点,并且可以使用<a href="https://docs.scipy.org/doc/scipy/reference/generated/scipy.interpolate.interpn.html" rel="nofollow noreferrer">^{<cd2>}</a>来估计返回为nan的点。在</p>
<p>这还远远不够完美,但我认为它更接近于实现你所期待的。在</p>
<p><strong>优点:</strong></p>
<ul>
<li>避免尖锐的不连续性。在</li>
<li>捕捉数据集边缘的基本线性趋势,而不必知道函数形式。在</li>
<li>尊重数据中的不对称性(例如,在远距离时,数据集的一方的值可能比另一方大,因此在远距离时,数据集的一方的值可能比另一方大。)</li>
</ul>
<p><strong>缺点:</strong></p>
<ul>
<li>这种方法的有效性在很大程度上取决于一个立方体的大小,你可以在你最初散布的点的凸包内容纳多大。如果你的数据是尖峰的/不规则的,那么即使是凸包边缘上的点也可能被外推到离嵌套立方体边缘相当远的地方,这会导致错误,因为外推法不会考虑到位于立方体外部的更近的数据点。在</li>
<li>线性外推法将受到数据中噪声的严重影响
在点云的边缘。在</li>
<li>做两组插值的计算成本。在</li>
</ul>