gpt4 book ai didi

欧氏距离的python数据帧矩阵

转载 作者:太空宇宙 更新时间:2023-11-04 08:45:43 25 4
gpt4 key购买 nike

我想创建一个自己定制的 k 最近邻方法。

为此,我需要一个矩阵 (x : y),它返回给定函数的 x 和 y 的每个组合的距离(例如,基于我的数据集的 7 项的欧几里得)。

例如

data:
x1 x2 x3
row 1: 1 2 3
row 2: 1 1 1
row 3: 4 2 3

如果我选择 x1 和 x2 以及 euclidean,那么输出应该是 3x3 输出

1:1=0
1:2 =sqrt((1-1)^2+(2-1)^2)=1
1:3 =sqrt((1-4)^2+(2-2)^2)=sqrt(3)
2:1=1:2=1
2:2=0
2:3=sqrt((1-4)^2+(1-2)^2)=2
3:3=0

等等……

如何在不遍历数据框的情况下编写它?

在此先感谢您的支持。

最佳答案

您可以使用 scipy.spatial.distance.pdistscipy.spatial.distance.squareform :

from scipy.spatial.distance import pdist, squareform

dist = pdist(df[['x1', 'x2']], 'euclidean')
df_dist = pd.DataFrame(squareform(dist))

如果您只想将数组作为输出,而不是 DataFrame,只需使用 squareform 本身,而不用将其包装在 DataFrame 中。

结果输出(作为 DataFrame):

     0         1         2
0 0.0 1.000000 3.000000
1 1.0 0.000000 3.162278
2 3.0 3.162278 0.000000

关于欧氏距离的python数据帧矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40871186/

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