pdist
- pair-wised distance → 모든 쌍 간의 거리
- 데이터 수가 x라면 shape=(xC2, 1)을 가지는 거리 쌍이 리턴
df = pd.DataFrame({
'x': [0, 3, 6, 4, 1],
'y': [0, 4, 0, 5, 1]
}, index=['A', 'B', 'C', 'D', 'E'])
display(pdist(df))
pdist(df).shape
cdist
- cross distance → 두 집합 간의 거리
- 두 집합의 데이터 개수는 달라도 되지만, distance를 구하기 위한 feature의 개수는 같아야 함
- A(M×p), B(N×p) → Result(M×N)
from sklearn.spatial.distance import pdist, cdist
matrix_AB = cdist(df_A, df_B, metric='euclidean')
df_dist_AB = pd.DataFrame(matrix_AB, index=df_A.index, columns=df_B.index)
print(df_dist_AB)
print(f"행렬 크기: {df_dist_AB.shape}")