Python实战:计算向量夹角及相关系数

在Python中,我们可以使用NumPy库来计算向量之间的夹角(通常是它们之间的余弦相似度)以及皮尔逊相关系数(Pearson correlation coefficient)。下面是一个Python脚本,展示了如何执行这些计算。

首先,确保你已经安装了NumPy库。如果没有,可以通过pip来安装:

pip install numpy

然后,你可以使用以下Python脚本来计算向量夹角和相关系数:

import numpy as np

# 定义两个向量
vec1 = np.array([1, 2, 3])
vec2 = np.array([4, 5, 6])

# 计算向量夹角(余弦相似度)
# 使用numpy的dot函数计算点积,linalg.norm计算范数
cos_sim = np.dot(vec1, vec2) / (np.linalg.norm(vec1) * np.linalg.norm(vec2))
print(f"向量夹角(余弦相似度): {cos_sim}")

# 计算皮尔逊相关系数
# 使用numpy的corrcoef函数
correlation_matrix = np.corrcoef(vec1, vec2)
pearson_correlation = correlation_matrix[0, 1]
print(f"皮尔逊相关系数: {pearson_correlation}")

# 如果你有两个等长的向量组成的二维数组(比如多对向量),
# 你可以直接传入这些向量组成的二维数组到corrcoef函数
# 例如:
vecs = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
correlation_matrix_multiple = np.corrcoef(vecs)
print(f"多向量皮尔逊相关系数矩阵:\n{correlation_matrix_multiple}")

在这个脚本中,我们首先定义了两个向量vec1vec2。然后,我们使用NumPy的dot函数来计算两个向量的点积,并使用linalg.norm函数来计算每个向量的范数(即长度)。余弦相似度就是点积除以两个范数的乘积。

接下来,我们使用NumPy的corrcoef函数来计算两个向量之间的皮尔逊相关系数。这个函数返回一个相关系数矩阵,但因为我们只传入了两个向量,所以结果矩阵只有一个非对角线元素(即两个向量之间的相关系数)。

最后,我们展示了如何计算多个向量对之间的皮尔逊相关系数矩阵。我们创建了一个二维数组vecs,其中包含了多对向量,并将这个数组传递给corrcoef函数。结果是一个相关系数矩阵,其中每个元素i, j表示vecs中第i个向量和第j个向量之间的相关系数。

相关推荐

  1. Python实战计算向量夹角相关系数

    2024-06-07 16:44:03       29 阅读
  2. 几种计算图像/向量相似度的指标(实现

    2024-06-07 16:44:03       36 阅读
  3. Python实战开发案例分析(15)—— 支持向量

    2024-06-07 16:44:03       31 阅读
  4. Pandas实战100例 | 案例 25: 计算相关系数

    2024-06-07 16:44:03       61 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-06-07 16:44:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-06-07 16:44:03       100 阅读
  3. 在Django里面运行非项目文件

    2024-06-07 16:44:03       82 阅读
  4. Python语言-面向对象

    2024-06-07 16:44:03       91 阅读

热门阅读

  1. grafana是什么?怎么使用?

    2024-06-07 16:44:03       28 阅读
  2. 【经验分享】嵌入式入坑经历(选段)

    2024-06-07 16:44:03       28 阅读
  3. Django信号详解

    2024-06-07 16:44:03       32 阅读
  4. 【C++】12.模板进阶

    2024-06-07 16:44:03       27 阅读
  5. 回溯法——LQ_04 2n皇后

    2024-06-07 16:44:03       27 阅读
  6. 每天CTF小练(6.6)--基础异或

    2024-06-07 16:44:03       30 阅读
  7. 欣九康诊疗系统:营销做得好,创收没烦恼!

    2024-06-07 16:44:03       28 阅读