python计算二维向量余弦
时间: 2023-04-10 16:03:01 浏览: 153
可以使用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计算二维向量的夹角
在Python中,计算两个二维向量之间的夹角通常使用余弦定理(Cosine Theorem)。向量A = (a1, a2) 和向量B = (b1, b2),它们之间的夹角θ可以通过下面的公式计算:
cos(θ) = (A·B) / (|A| * |B|)
其中 A·B 表示向量A和向量B的点积,|A| 和 |B| 分别表示向量A和B的模(长度)。
具体的步骤如下:
1. 计算点积 (a1*b1 + a2*b2)
2. 计算向量A和B的模,即 sqrt(a1**2 + a2**2) 和 sqrt(b1**2 + b2**2)
3. 使用上述公式计算cos(θ)
如果你需要一个函数来完成这个计算,可以编写如下Python代码:
```python
import math
def angle_between_vectors(vec1, vec2):
dot_product = sum(x*y for x, y in zip(vec1, vec2))
norm_vec1 = math.sqrt(sum(x**2 for x in vec1))
norm_vec2 = math.sqrt(sum(y**2 for y in vec2))
cos_theta = dot_product / (norm_vec1 * norm_vec2)
# 将弧度转换为角度(如果需要)
return math.degrees(math.acos(cos_theta))
# 示例
vec_a = [1, 2]
vec_b = [3, 4]
angle = angle_between_vectors(vec_a, vec_b)
print(f"向量的夹角是: {angle} 度")
```
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`来计算每个向量对应位置的余弦相似度。
阅读全文