在python中使用pdist()和您定义的自定义距离函数

2024-04-16 20:02:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我对python中^{}的使用很感兴趣,它对于我正在开发的一些应用程序来说变得非常有用和快速。

我需要使用一个成对距离函数,这是自定义的,而不是由度量定义的标准默认距离度量。举个简单的例子,假设我不想使用euclideandistance函数,如下所示:

 Y = pdist(X, 'euclidean')

相反,我想自己定义欧几里德函数,并将其作为函数或参数传递给pdist()。如何将euclidean距离函数的实现传递给此函数以获得完全相同的结果。这个问题的答案,将帮助我以我感兴趣的方式使用这个函数。

在MATLAB中,我知道如何使用pdist(),在Python中我还不知道。谢谢你的建议


Tags: 函数答案应用程序距离标准定义度量方式
1条回答
网友
1楼 · 发布于 2024-04-16 20:02:53

documentation for ^{}中有一个示例:

import numpy as np
from scipy.spatial.distance import pdist

dm = pdist(X, lambda u, v: np.sqrt(((u-v)**2).sum()))

如果要使用正则函数而不是lambda函数,则等效的

import numpy as np
from scipy.spatial.distance import pdist

def dfun(u, v):
    return np.sqrt(((u-v)**2).sum())

dm = pdist(X, dfun)

相关问题 更多 >