- 全組み合わせ列挙
np.hstack([np.repeat(X, len(Y), axis=0), np.tile(Y, [len(X), 1])])
- マハラノビス距離計算
def mahalanobis_distance(X, mean=None, cov=None):
mean = np.mean(X, axis=0) if mean is None else mean
cov = np.cov(X, rowvar=0) if cov is None else cov
pre = np.linalg.inv(cov)
X_ = X - mean.reshape(1, -1)
return np.sqrt(np.sum(X_.dot(pre) * X_, axis=1))