knn中,两个向量的距离如何用马氏距离(mahalanobis)计算?

麻烦请教一下各位大佬,小弟最近刚刚接触机器学习,才疏学浅,理解不精。
knn中两个向量间距离的计算往往用欧式距离,若要将之换成马氏距离,该如何操作呢?
是否要计算traindata的逆协方差矩阵,再以此计算某一测试数据和traindata中所有向量的距离?

sklearn.neighbors.KNeighborsClassifier(n_neighbors=5, weights='uniform', algorithm='auto', leaf_size=30, p=2, metric='minkowski', metric_params=None, n_jobs=1, **kwargs)
使用sklearn库里面的KNN算法
修改metric这个参数

是这样的,马氏距离的定义中有逆协方差矩阵,因此,必须先算,你的理解是正确的