Python 计算向量和矩阵之间的距离

Python 计算向量和矩阵之间的距离,python,numpy,scikit-learn,scipy,Python,Numpy,Scikit Learn,Scipy,我使用sklearn.metrics.pairwise.paired_distance计算单个向量和矩阵之间的距离。我想计算矩阵的每一行和单个向量之间的距离。由于sklearn.metrics.pairwise.paired_distance要求两个数组的维数相等,因此我使用np.tile创建一个包含向量多个副本的矩阵,以创建与第一个矩阵大小相同的矩阵 例如: import numpy as np from sklearn.metrics.pairwise import paired_dista

我使用
sklearn.metrics.pairwise.paired_distance
计算单个向量和矩阵之间的距离。我想计算矩阵的每一行和单个向量之间的距离。由于
sklearn.metrics.pairwise.paired_distance
要求两个数组的维数相等,因此我使用
np.tile
创建一个包含向量多个副本的矩阵,以创建与第一个矩阵大小相同的矩阵

例如:

import numpy as np
from sklearn.metrics.pairwise import paired_distances

# get matrix a and vector b
a = np.array([[1,2],[3,4]])
b = np.array([[5],[6]]).transpose()

# create a matrix with copies of b that has the same size as matrix a
b = np.tile(b,(a.shape[0],1))

distances = paired_distances(a,b)

只是出于好奇:有没有一个函数可以做到这一点?时间在这里并不重要,因为我不处理非常大的阵列。但是函数应该提供不同类型的度量

您可以使用
numpy。沿\u轴应用\u
方法将给定函数应用于每行。

您可以使用SciPy的
cdist
cdist(a,b).ravel()