gpt4 book ai didi

python - 识别具有最小欧氏距离的点

转载 作者:太空狗 更新时间:2023-10-29 19:31:59 24 4
gpt4 key购买 nike

我有一个 n 维点的集合,我想找出哪 2 个最接近。我能想到的最好的二维是:

from numpy import *
myArr = array( [[1, 2],
[3, 4],
[5, 6],
[7, 8]] )

n = myArr.shape[0]
cross = [[sum( ( myArr[i] - myArr[j] ) ** 2 ), i, j]
for i in xrange( n )
for j in xrange( n )
if i != j
]

print min( cross )

给出

[8, 0, 1]

但这对于大型数组来说太慢了。我可以对其应用什么样的优化?

相关:


Euclidean distance between points in two different Numpy arrays, not within

最佳答案

试试 scipy.spatial.distance.pdist(myArr)。这将为您提供一个压缩距离矩阵。您可以在其上使用 argmin 并找到最小值的索引。这可以转换成配对信息。

关于python - 识别具有最小欧氏距离的点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5119644/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com