我手中有两个10行2列的矩阵,我想要计算两个矩阵对应列之间的余弦相似度,并得到一个一行两列的输出结果,我应该怎么写一个非常高效,运行速度非常快的python代码
时间: 2023-04-08 15:05:22 浏览: 181
你可以使用numpy库中的dot函数和linalg.norm函数来计算余弦相似度,具体代码如下:
import numpy as np
# 生成两个10行2列的矩阵
matrix1 = np.random.rand(10, 2)
matrix2 = np.random.rand(10, 2)
# 计算两个矩阵对应列之间的余弦相似度
cos_sim = np.dot(matrix1.T, matrix2) / (np.linalg.norm(matrix1, axis=0) * np.linalg.norm(matrix2, axis=0))
# 输出结果
print(cos_sim.reshape(1, 2))
这段代码中,首先使用numpy库中的random.rand函数生成两个10行2列的随机矩阵,然后使用dot函数计算两个矩阵对应列之间的点积,再使用linalg.norm函数计算两个矩阵对应列的模长,最后将点积除以模长得到余弦相似度。最后使用reshape函数将结果转换为一行两列的形式输出。
相关问题
我手中有两个10行2列的矩阵,我想要计算两个矩阵对应列之间的余弦相似度,并得到一个一行两列的输出结果,我应该怎么写python代码
你可以使用numpy库中的dot函数和linalg.norm函数来计算两个矩阵对应列之间的余弦相似度。具体代码如下:
import numpy as np
# 定义两个10行2列的矩阵
matrix1 = np.random.rand(10, 2)
matrix2 = np.random.rand(10, 2)
# 计算两个矩阵对应列之间的余弦相似度
cos_sim = np.dot(matrix1.T, matrix2) / (np.linalg.norm(matrix1.T, axis=0) * np.linalg.norm(matrix2, axis=0))
# 输出结果
print(cos_sim)
阅读全文