3根K线A有两个特征方向和长度如下 , 另外3根K线B, 用python实现计算他们的向量近似度,长度有意义,不用归一化。 (x11,x12) (x21,x22) (x31,x32) K线 B (y11,y12) (y21,y22) (y31,y32)
时间: 2023-12-14 09:04:37 浏览: 404
用Python学习线性代数——向量
可以使用numpy库来计算向量的近似度,具体实现步骤如下:
1. 将每组K线数据转换为向量,向量的长度为两点之间的距离,即:
```
vector_A_1 = [x12 - x11, x22 - x21]
vector_A_2 = [x22 - x21, x32 - x31]
vector_A_3 = [x32 - x31, x22 - x21]
vector_B_1 = [y12 - y11, y22 - y21]
vector_B_2 = [y22 - y21, y32 - y31]
vector_B_3 = [y32 - y31, y22 - y21]
```
2. 计算每组向量的夹角余弦值,即:
```
cosine_similarity_1 = np.dot(vector_A_1, vector_B_1) / (np.linalg.norm(vector_A_1) * np.linalg.norm(vector_B_1))
cosine_similarity_2 = np.dot(vector_A_2, vector_B_2) / (np.linalg.norm(vector_A_2) * np.linalg.norm(vector_B_2))
cosine_similarity_3 = np.dot(vector_A_3, vector_B_3) / (np.linalg.norm(vector_A_3) * np.linalg.norm(vector_B_3))
```
3. 计算向量的近似度,可以取每个夹角余弦值的平均值,即:
```
vector_similarity = (cosine_similarity_1 + cosine_similarity_2 + cosine_similarity_3) / 3
```
这样就可以得到三组K线向量的近似度了。
阅读全文