【发布时间】:2021-05-02 12:17:27
【问题描述】:
我有一个由 472 行和 32 列组成的数据框,它看起来像这样:
2 3 0 4 2 0 0 5 2 3 3 3 2 0 5 5 3 3 3 2 2 0 2 5 3 3 3 2 2 2 0 5
2 3 0 4 2 0 0 5 2 3 3 3 2 0 5 5 3 3 3 2 2 0 2 5 3 3 3 2 2 2 0 5
2 3 0 4 2 0 0 5 2 3 3 3 2 0 5 5 3 3 3 2 2 0 2 5 3 3 3 2 2 2 0 5
这里,每一行代表一个人的 32 颗牙齿,0-5 之间的每个数字代表不同的牙齿类别。现在我想通过使用不同的距离度量(例如 MANHATTAN、EUCLID、MINKOWSKI)来测量任意 2 行之间的距离。因此,差异越小,他们就越有可能是同一个人等。
*如果我在计算这些指标之前应用 ONE-HOT-ENCODING,每行将有超过 32 列,这对我来说毫无用处。
*我还找到了cdist 和pdist,但是这些函数给了我元素距离的结果。但我想要的是在任意两行之间获得一个“单一结果”。
我是在尝试一些无意义的事情还是我应该怎么做才能计算出这些距离?
【问题讨论】:
-
关于 EUCLID 参见 numpy.linalg.norm,请记住,在 numpy 的说法中,它被命名为 2-norm
-
@IshwarVenugopal,不幸的是,不完全是。
-
@Daweo,是的,我看到了,但我还需要找到一种方法来计算其他指标
标签: python pandas dataframe one-hot-encoding