概述
例如,在单位平方中均匀分布100,000个点,在我的实例中凸包中只有22个点.
import numpy as np from scipy import spatial # test points pts = np.random.rand(100_000,2) # two points which are fruthest apart will occur as vertices of the convex hull candidates = pts[spatial.ConvexHull(pts).vertices] # get distances between each pair of candidate points dist_mat = spatial.distance_matrix(candidates,candidates) # get indices of candidates that are furthest apart i,j = np.unravel_index(dist_mat.argmax(),dist_mat.shape) print(candidates[i],candidates[j]) # e.g. [ 1.11251218e-03 5.49583204e-05] [ 0.99989971 0.99924638]
如果数据是二维的,你可以在O(n * log(n))时间compute凸包,其中n是点数.不幸的是,随着维度数量的增加,性能提升消失了.
总结
以上是编程之家为你收集整理的在Python中用许多点找到两个最远点的点全部内容,希望文章能够帮你解决在Python中用许多点找到两个最远点的点所遇到的程序开发问题。
如果您也喜欢它,动动您的小指点个赞吧