欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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 求一个矩阵的距离矩阵的方法:

 

相关标签: 功能代码积累