繁体   English   中英

如何在python中使用广播计算矩阵的成对余弦距离

[英]How to calculate pairwise cosine distance of matrix using broadcasting in python

我有一个这样的矩阵,其中每一行都是一个向量,需要在不使用循环的情况下计算向量之间的成对余弦距离(在本例中,作为 2x2 矩阵)? 我知道笛卡尔距离可以填充一个维度,但不知道这里的最佳方法。

m = np.array([[1, 3, 5],[2,6,10]])

这种类型的问题会让你斥责“堆栈不适合做作业”,但我想你可以这样做......

from numpy import linalg as LA
import numpy as np
m = np.array([[1, 3, 5],[2,6,10]])
cos = float(sum(m[0]*m[1]))/float(LA.norm(m[0])*LA.norm(m[1]))

当然,如果你想避免使用linlag

float(sum(m[0]*m[1]))/(float(sum(m[0]*m[0]))**0.5*float(sum(m[1]*m[1]))**0.5)

查看链接 -> https://en.wikipedia.org/wiki/Cosine_similarity

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM