python计算二维向量余弦
时间: 2023-04-10 10:03:01 浏览: 102
可以使用numpy库中的dot函数和norm函数来计算二维向量余弦,代码如下:
import numpy as np
def cos_angle(v1, v2):
cos = np.dot(v1, v2) / (np.linalg.norm(v1) * np.linalg.norm(v2))
return cos
v1 = np.array([1, 2])
v2 = np.array([3, 4])
cos = cos_angle(v1, v2)
print(cos)
输出结果为:0.9838699100999074
相关问题
python计算两个tensor余弦相似度
可以使用PyTorch中的`torch.nn.functional.cosine_similarity`函数来计算两个tensor的余弦相似度。具体使用方法如下:
``` python
import torch
# 定义两个tensor
a = torch.tensor([1, 2, 3])
b = torch.tensor([4, 5, 6])
# 计算余弦相似度
cos_sim = torch.nn.functional.cosine_similarity(a, b, dim=0)
print(cos_sim) # tensor(0.9746)
```
其中,`dim`参数用于指定在哪个维度上计算余弦相似度,默认为最后一个维度。在上述示例中,`a`和`b`都是一维张量,因此`dim=0`。如果`a`和`b`是二维张量,可以通过设置`dim=1`来计算每个向量对应位置的余弦相似度。
用python计算调整余弦相似度
调整余弦相似度(Adjusted Cosine Similarity)是一种计算物品之间相似度的方法,通常用于推荐系统中。在Python中,可以使用以下代码来计算两个向量的调整余弦相似度:
```python
import numpy as np
def adjusted_cosine_similarity(ratings):
# 计算每个物品的平均得分
item_means = np.mean(ratings, axis=0)
# 将每个用户的得分减去对应物品的平均得分
ratings_diff = ratings - item_means
# 计算调整余弦相似度
sim = np.dot(ratings_diff.T, ratings_diff) / (np.sqrt(np.sum(ratings_diff**2, axis=0))[:, np.newaxis] * np.sqrt(np.sum(ratings_diff**2, axis=0))[np.newaxis, :])
return sim
```
其中,`ratings`是一个二维数组,表示每个用户对每个物品的评分。数组的行表示用户,列表示物品,每个元素表示该用户对该物品的评分。函数返回一个二维数组,表示物品之间的调整余弦相似度。数组的行和列表示物品,每个元素表示两个物品之间的相似度。