python 求一个矩阵的距离矩阵的方法:
程序员文章站
2022-03-14 16:38:14
...
例:有行向量矩阵Matrix,维度为(n行,d特征长)。我们要求个点之间的距离并构成一个(n,n)距离矩阵,方法如下:
主要用到:
np.square(),
np.add(a,b), #若b为行向量,将b加到前面的每一行上;若b为列向量,将b加到前面的每一列上
np.sum(a,1) #1:按列加,0:按行加
我们有
(a - b)^2 = a^2 + b^2 - 2*a*b;
import numpy as np
def calculate_dis(x):
sum_x = np.sum(np.square(x),1)#先求对应元素的平方,然后按列相加,得到(n,1)列向量
dist = np.add(np.add(-2*np.dot(x,x.T),sum_x),sum_x.T)#np.dot()函数是向量的点乘,np.add()函数是将sum_x的转置行向量依次加到前面的(n,n)向量的每一行上。按行加
或
dist = np.add(np.add(-2*np.dot(x,x.T),sum_x).T,sum_x)#np.dot()函数是向量的点乘,np.add()函数是将sum_x列向量依次加到前面的(n,n)向量的每一列上。按列加
return dist
举个例子:
上一篇: python fabric使用笔记
下一篇: idea热加载的四种方法