import numpy as np
import operator
import scipy.spatial.distance as dist
def pp_ps(inX, dataSet,function):
# 将点与点的距离写为点与数据集的计算,返回一维数据
distances = np.array([function(inX, dataSet[i]) for i in range(group.shape[0])])
return distances
闵可夫斯基距离(Minkowski Distance)
:曼哈顿距离
:欧式距离
:切比雪夫距离
np.linalg.norm
def Minkowski_distance_1(vector1, vector2, p):
return pdist(np.vstack((vector1, vector2)), 'minkowski', p)
20190503191108.png
欧式距离(Euclidean Distance)
def euclidean_distance_1(inX, dataSet):
# 点与样本集的欧式距离
sub = inX - dataSet
squ_sub = sub**2
sum_squ_sub = np.sum(squ_sub, axis=1)
distances = sum_squ_sub**0.5
return distances
def euclidean_distance_2(inX, dataSet):
# 点与样本集的欧式距离
return np.linalg.norm(inX - dataSet,axis=1)
def euclidean_distance_3(vector1, vector2):<