如何在n个点之间获得m个点之间的最大距离

问题描述 投票:3回答:2

说我在一维空间中定义了以下几点:

x = np.array([[0.70710678],
             [0.70710678],
             [0.        ],
             [1.41421356]])

我想在这n个点之间获得欧氏距离最长的m对点(如果m为1,在这种情况下将为1.4142和0)

我试图通过::>获得两两的距离

from scipy.spatial.distance import pdist, cdist

cdist(x,x, 'seuclidean')

但是从这一部分我不确定如何去做其余的事情。

说我在一维空间中定义了以下几点:x = np.array([[0.70710678],[0.70710678],[0.],[1.41421356]])我想得到m对...] >

python numpy distance euclidean-distance
2个回答
1
投票

我们可以在np.argpartition结果的平坦距离上使用cdist-

dists = np.triu(cdist(x,x, 'seuclidean'),1)
s = dists.shape
idx = np.vstack(np.unravel_index(np.argpartition(dists.ravel(),-m)[-m:],s)).T

0
投票

要使每个点与最远的对应点配对,可以使用:


0
投票

要使每个点与最远的对应点配对,可以使用:

© www.soinside.com 2019 - 2024. All rights reserved.