Sklearn中pairwise_distances_argmin()方法
作用:遍历序列,求序列中距离的最小值,并返回其下标。
常用参数介绍:
pairwise_distances_argmin(X,y, axis=,metric=)
X,y:输入的序列
axis:取值0或1
metric:距离类型,通常使用euclidean(欧几里得距离)
返回值介绍:
返回值返回的是X或y序列中的下标。根据axis取值的不同返回的不同序列中的下标。
首先针对axis=1的情况,axis=1是计算X中与y距离最近,并返回对应y的下标。下面是例子。
from sklearn.metrics import pairwise_distances_argmin
X = [(0,0),(2,2)] #2个数据
y = [(1,0),(3,3),(2,2)] #3个数据
pairwise_distances_argmin(X,y,axis=1,metric='euclidean')
》》》
结果:array([0, 2], dtype=int64)
我们发现返回值只有两个,与X的数据个数一致。我们简单剖析一下。X中的一个数据(0,0)与y序列的三个数据计算距离,发现(0,0)与(1,0)的距离最近。(1,0)在y的下标是0。接着是X中的二个数据(2,2)与y序列的三个数据计算距离,发现(2,2)与(2,2)的距离最近。(2,2)在y的下标是2。于是就返回2。所以最后的结果是array([0, 2], dtype=int64)。
针对axis=0的情况,axis=0是计算y中与X距离最近,并返回对应X的下标。下面是例子。
from sklearn.metrics import pairwise_distances_argmin
X = [(0,0),(2,2)] #2个数据
y = [(1,0),(3,3),(2,2)] #3个数据
pairwise_distances_argmin(X,y,axis=0,metric='euclidean')
》》》
结果:array([0, 1, 1], dtype=int64)
我们发现返回值只有三个,与y的数据个数一致。与axis=1同理,只不过次是计算y中的数据与X数据的距离。y中的一个数据(1,0)与,x序列的两个个数据计算距离,发现(1,0)与(0,0)的距离最近。(0,0)在x的下标是0,返回0。第二个数据(3,3)与x序列计算距离,发现(3,3)与(2,2)的距离最近。(2,2)在x的下标是1,返回1。第三个数据(2,2),与x序列计算距离,发现(2,2)与(2,2)的距离最近。(2,2)在x的下标是1,返回1。所以最后的结果是array([0, 1, 1], dtype=int64)