gpt4 book ai didi

python - 在 pdist 压缩距离矩阵中找到最小值的索引

转载 作者:太空狗 更新时间:2023-10-30 00:45:12 24 4
gpt4 key购买 nike

我已经使用 scipy.spatial.distance.pdist(X) 来计算下面列表 X 的每对元素之间的欧几里德距离度量:

X = [[0, 3, 4, 2], [23, 5, 32, 1], [3, 4, 2, 1], [33, 54, 5, 12]]

这将返回一个压缩距离矩阵:

array([ 36.30426972,   3.87298335,  61.57109712,  36.06937759,
57.88782255, 59.41380311])

对于每个元素 X,我需要找到最近的其他元素的索引。

将压缩距离矩阵转换为方形有助于可视化结果,但我不知道如何以编程方式为 X 中的每个元素识别最近元素 X 的索引。

array([[  0.        ,  36.30426972,   3.87298335,  61.57109712],
[ 36.30426972, 0. , 36.06937759, 57.88782255],
[ 3.87298335, 36.06937759, 0. , 59.41380311],
[ 61.57109712, 57.88782255, 59.41380311, 0. ]])

我相信 argmin() 是要使用的函数,但我从这里迷路了。提前感谢您的帮助。

最佳答案

我们将对结果的平方形式进行运算。首先,要排除“纽约离纽约最近”的答案,

numpy.fill_diagonal(distances, numpy.inf)

然后,它是一个沿轴的简单 argmin:

closest_points = distances.argmin(axis=0)

关于python - 在 pdist 压缩距离矩阵中找到最小值的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20984767/

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