Вот пример того, что вы хотите, используя функцию, определенную в другом вопросе Я разместил в комментариях:
from scipy.spatial import Delaunay
import numpy as np
import matplotlib.pyplot as plt
def in_hull(p, hull):
"""
Test if points in `p` are in `hull`
`p` should be a `NxK` coordinates of `N` points in `K` dimensions
`hull` is either a scipy.spatial.Delaunay object or the `MxK` array of the
coordinates of `M` points in `K`dimensions for which Delaunay triangulation
will be computed
"""
if not isinstance(hull,Delaunay):
hull = Delaunay(hull)
return hull.find_simplex(p)>=0
T = np.random.rand(30,2)
B = T + np.array([[0.4, 0] for i in range(30)])
plt.plot(T[:,0], T[:,1], 'o')
plt.plot(B[:,0], B[:,1], 'o')
new_points = T[in_hull(T,B)]
plt.plot(new_points[:,0], new_points[:,1], 'x', markersize=8)
Находит все точки T
в корпусе B
и сохраняет их в new_points
. Я также заговор, чтобы вы увидели результат