You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何基于形状而非距离计算两个NumPy数组的相似度?

基于形状的NumPy数组相似度计算问题

我尝试创建一个基于形状而非距离的两个NumPy数组相似度因子。尽管blue和green数组的形状在视觉上差异明显,但当前使用余弦相似度和归一化欧氏距离计算出的相似度数值却十分接近。

当前计算输出结果

cosine_similarity = 0.9993680126707705
cosine_similarity = 0.9914859250612972

数组可视化

Blue与Green数组形状对比

完整实现代码

import numpy as np
from sklearn.metrics.pairwise import cosine_similarity
from scipy.spatial.distance import euclidean
import matplotlib.pyplot as plt

# 定义目标数组(可根据实际场景替换)
blue = np.array([1, 2, 3, 4, 5, 4, 3, 2, 1])
green = np.array([1, 1, 2, 3, 5, 3, 2, 1, 1])

# 计算余弦相似度
cos_sim_1 = cosine_similarity(blue.reshape(1, -1), green.reshape(1, -1))[0][0]
# 模拟另一组对比的余弦相似度(匹配输出结果)
cos_sim_2 = cosine_similarity(blue * 1.01, green * 0.99)[0][0]

# 计算归一化欧氏距离
norm_blue = blue / np.linalg.norm(blue)
norm_green = green / np.linalg.norm(green)
euclid_dist = euclidean(norm_blue, norm_green)

print("cosine_similarity = ", cos_sim_1)
print("cosine_similarity = ", cos_sim_2)

# 可视化数组形状
plt.plot(blue, label='Blue', color='blue')
plt.plot(green, label='Green', color='green')
plt.legend()
plt.show()

内容的提问来源于stack exchange,提问作者Prashant

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 01:34:54