求助 help!!!
一个用numpy求向量余弦相似度的问题 求大佬解答一下 感谢 参数是2个矩阵,不用你写乘号 塔利班 发表于 2019-1-21 20:25参数是2个矩阵,不用你写乘号
改好了 可是每一个结果前面都会出现matrix 你知道怎么解决吗? 代码贴出来,不想整图片 塔利班 发表于 2019-1-21 21:45
代码贴出来,不想整图片
import numpy as np
def cos_sim(vector_a, vector_b):
# 计算两个向量之间的余弦相似度
# param vector_a: 向量 a
# param vector_b: 向量 b
# return: sim
vector_a = np.mat(vector_a)
vector_b = np.mat(vector_b)
num = np.matmul(vector_a , vector_b.T)
denom = np.linalg.norm(vector_a) * np.linalg.norm(vector_b)
cos = num / denom
global sim
sim = 0.5 + 0.5 * cos
return sim
list1 = ((232.9502,232.9502,237.2201,231.3787,237.2201,226.0874),
(232.9502,232.9502,237.2201,231.3787,231.3787,268.5020),
(232.9502,232.9502,237.2201,231.3787,237.2201,256.9941),
(232.9502,232.9502,237.2201,231.3787,250.0087,247.2787),
(232.9502,232.9502,237.2201,199.0121,203.7241,244.2814),
(232.9502,232.9502,237.2201,199.0121,199.0121,254.0817),
(232.9502,232.9502,237.2201,199.0121,135.9120,232.9502),
(232.9502,232.9502,237.2201,199.0121,199.0121,203.7241),
(232.9502,232.9502,237.2201,199.0121,214.2976,259.6575),
(232.9502,232.9502,237.2201,199.0121,199.0121,243.2131))
array1 = np.array(list1)
list2=[]
i=0
j=1
while 0<=i<=9:
while i<j<=9:
a = array1
b = array1
cos_sim(a,b)
sim.tolist()
list2.append(sim)
j += 1
else:
i+=1
list3 = sorted(list2)
print(list3)
你这现在才发,我电脑不在身边,你用np.array定义array1不行吗 塔利班 发表于 2019-1-22 09:47
你这现在才发,我电脑不在身边,你用np.array定义array1不行吗
那请大佬 有时间帮我看一下 先谢谢了
页:
[1]