python如何计算两组数据的相关性

背景

最近测试的一个需求里,需要计算两组数据的相关性,看了一下计算公式,当数据量过大时,发现是我无法手动可以计算完成的。

 但是如果不对得到的数据进行校验的话,那就不知道开发算出来的值是否有问题。于是想起来用python试试能不能找到对应的计算公式。

过程

果然搜索了一下,python是可以计算两组数据的相关性的。但找到的文章大部分解决的都是多位数组的相关性,比如输入的结果都是矩阵数据类型的,而我要处理的只是2组1维数据而已,搞的那么复杂真是没必要啊。

于是在我执着地搜索下,终于找到了新的方案——使用python的spicy库

scipy是一个用于数学、科学、工程领域的常用软件包,可以处理插值、积分、优化、图像处理、常微分方程数值解的求解、信号处理等问题。它用于有效计算Numpy矩阵,使Numpy和Scipy协同工作,高效解决问题。

需要用到的是它的子模块stats(统计分布和函数)中的pearsonr,即可得到想要的结果。

from scipy import stats

def get_p_value(arrA, arrB):
    r = stats.pearsonr(arrA,arrB)  #输出的第一个值0.7676为相关系数;第二个值为p值,该值越小表明相关系数越显著
    return r

使用python,很多公式类的方法确实简单多了。

猜你喜欢

转载自blog.csdn.net/sumoyan1010/article/details/125656012