两个128维特征的余弦相似度计算 python
时间: 2024-09-26 19:05:17 浏览: 55
在Python中,你可以使用scikit-learn库中的`cosine_similarity`函数来计算两个128维特征向量的余弦相似度。首先需要安装scikit-learn,然后按照以下步骤操作:
```python
from sklearn.metrics.pairwise import cosine_similarity
# 假设你有两个numpy数组,例如 vector1 和 vector2
vector1 = np.array([...]) # 128维numpy数组
vector2 = np.array([...])
# 计算余弦相似度
similarity_matrix = cosine_similarity(vector1.reshape(1,-1), vector2.reshape(1,-1))
# 相似度是一个单元素列表,取第一个元素就是两向量间的相似度
cos_sim = similarity_matrix[0][0]
print("Cosine Similarity:", cos_sim)
```
这里,`reshape(1,-1)`是为了将一维数组转换成二维行向量,因为`cosine_similarity`函数期望输入是一系列向量。
如果你有很多对向量需要计算,可以循环遍历并累加到结果矩阵:
```python
import numpy as np
similarities = []
for i in range(len(vector_list)):
similarities.append(cosine_similarity(vector_list[i].reshape(1,-1), vector2.reshape(1,-1))[0][0])
# 或者使用 broadcasting
cos_similarities = cosine_similarity(np.stack(vector_list), vector2.reshape(1,-1))
```
记得先导入必要的库,`numpy`用于处理向量,`sklearn.metrics.pairwise`用于计算余弦相似度。
阅读全文