代码示例:
import numpy as np
from scipy.spatial.distance import cdist
# 构造示例数据, 假设有三个组别,每个组别有5个点
data = np.random.rand(15, 2)
group = np.repeat(range(3), 5)
# 将数据点按组别分类
groups = {i: data[group == i] for i in range(3)}
# 遍历每个组别内的点,计算到其他组别最近邻点的距离,并取最小值
min_dists = []
for i in range(3):
d = []
for j in range(3):
if i == j:
continue
dist = cdist(groups[i], groups[j]).min(axis=1)
d.append(dist)
min_dists.append(np.concatenate(d).min())
# 对所有组别的最小距离取平均值
result = np.mean(min_dists)
print(result)
下一篇:不同作用域的构造函数