[numpy] np.corrcoef的简单解释

一、参数

np.corrcoef(x, y, rowvar)

x: Union[ndarray, Iterable, int, float]
可以为ndarray类型、可迭代类型,int类型,float类型的一个集合

y: Union[ndarray, Iterable, int, float, None] = None
默认为空,也可以为ndarray类型、可迭代类型、int类型、float类型的一个集合

rowvar: Optional[bool] = True
默认为True,当为True时,拿每一行的第一个元素和该行各个元素进行相关系数的计算,反之亦然。

二、示例

1. y == None

假设有以下数据:

x = np.array([[3, 6, 9], [64, 50, 80], [100, 200, 500])
cof = np.corrcoef(x)
print(cof)

首先明确,当y = None时,生成的cof大小是一个len(x) * len(x)也就时3 * 3大小的矩阵。拿矩阵的第一行举例,就是拿[3, 6, 9]这个元素分别和[3, 6, 9], [95, 50, 1], [100, 200, 500]作相关系数计算(包括自身)。当然第二行就是拿第二个元素和该行的三个元素进行计算。

结果为:

[[1.         0.53293871 0.96076892]
 [0.53293871 1.         0.7467118 ]
 [0.96076892 0.7467118  1.        ]]

当想要知道[3, 6, 9]和[100, 200, 500]之间的相关系数,只需要cof[0, 2]就可以拿出来了。

2、y != None

当x = [x1, x2, x3], y = [y1, y2, y3]
此时的cof矩阵大小为(len(x) + len(y)) * (len(x) + len(y))。

cof矩阵为一个6 * 6的矩阵
前两行如下:
f(x1, x1), f(x1, x2), f(x1, x3), f(x1, y1), f(x1, y2), f(x1, y3)
f(x2, x1), f(x2, x2), f(x2, x3), f(x2, y1), f(x2, y2), f(x2, y3), 其中f为计算相关系数

假设有以下数据:

x = np.array([[3, 6, 9], [64, 50, 80], [100, 200, 500]])
y = np.array([[32, 42, 50], [9, 8, 7], [40, 90, 200]])
cof = np.corrcoef(x, y)
print(cof)

此时的cof矩阵为:

[[ 1.          0.53293871  0.96076892  0.99794872 -1.          0.97735555]
 [ 0.53293871  1.          0.7467118   0.47767605 -0.53293871  0.69991988]
 [ 0.96076892  0.7467118   1.          0.94104259 -0.96076892  0.99770115]
 [ 0.99794872  0.47767605  0.94104259  1.         -0.99794872  0.96180418]
 [-1.         -0.53293871 -0.96076892 -0.99794872  1.         -0.97735555]
 [ 0.97735555  0.69991988  0.99770115  0.96180418 -0.97735555  1.        ]]

假设此时想要x中[64, 50, 80]和y中[40, 90, 200]的相关系数,只需要拿出cof[1, 5]

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Cheesberry

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值