计算两个矩阵的行之间的相关系数

亚斯

给定两个矩阵AB在Python中,我想找到两个矩阵中各行之间的相关性。矩阵的长度为5 * 7。

我想找到A和中的每一行之间的相关性B并将相关性取平均值:

A  = data_All_Features_rating1000_topk_nr ;
B  = data_All_Features_rating1000_leastk_nr ;

corr_1 = corrcoeff(A[0,:],B[0,:]])
corr_2 = corrcoeff(A[0,:],B[1,:]])
corr_3 = corrcoeff(A[0,:],B[2,:]])
corr_4 = corrcoeff(A[0,:],B[3,:]])
corr_5 = corrcoeff(A[0,:],B[4,:]])

corr_6 = corrcoeff(A[1,:],B[1,:]])
corr_7 = corrcoeff(A[1,:],B[2,:]])
corr_8 = corrcoeff(A[1,:],B[3,:]])
corr_9 = corrcoeff(A[1,:],B[4,:]])

corr_10 = corrcoeff(A[2,:],B[2,:]])
corr_11 = corrcoeff(A[2,:],B[3,:]])
corr_12 = corrcoeff(A[2,:],B[4,:]])

corr_13 = corrcoeff(A[3,:],B[3,:]])
corr_14 = corrcoeff(A[3,:],B[4,:]])

corr_14 = corrcoeff(A[4,:],B[4,:]])


corravg = avg(corr_1,corr_2,...,corr_14).

这就是我要做的:

topk = 5 
corr_res = []
p = 0 ;
for i in range(0,topk):
    for j in range(i,topk):
        a = data_All_Features_rating1000_topk_nr[i,:]
        b = data_All_Features_rating1000_leastk_nr[j,:]
        tmp = np.corrcoef(a,b)
        print tmp[0,1]
        corr_res = corr_res.extend(tmp[0,1])  

我收到此错误:

     ---------------------------------------------------------------------------
     TypeError                                 Traceback (most recent call last)
     <ipython-input-159-ab1d737eed71> in <module>()
     22             tmp = np.corrcoef(a,b)
     23             print tmp[0,1]
---> 24             corr_res = corr_res.extend(tmp[0,1])
     25            # print p+1
     26            # print corr_res

     TypeError: 'numpy.float64' object is not iterable
克沃罗别夫

在python中执行矩阵运算的有效方法是使用NumPy库。确切而言,相关计算可以是用户numpy.correlate函数。要计算所有行组合之间的相关性,可以使用

import numpy as np
A = np.array([[1, 2, 3, 4], [2, 3, 5, 6], [1,3,4,5], [7,8,2,3]])
B = np.array([[1, 2, 3, 4], [3, 5, 6, 2], [3,2,4,1], [9,8,2,1]])
corr = []
for i in xrange(len(A)):
    for j in xrange(len(B)-i):
        corr.extend(np.correlate(A[i], B[j+i]))
corr_avg = np.average(corr)
print corr_avg
print " ".join(map(str, corr))

更新

代替

print tmp[0,1]
corr_res = corr_res.extend(tmp[0,1])

尝试

print tmp[0,0]
corr_res.append(tmp[0,0])

listextend在输入上采用可迭代对象的方法(如其他列表,元组等)。如果要增加list标量值,则应使用append方法。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

计算两个矩阵的行之间的相关系数

来自分类Dev

计算两个多维数组之间的相关系数

来自分类Dev

两个数据集之间的R相关和相关系数

来自分类Dev

如何计算数组内矩阵的相关系数?

来自分类Dev

Sparklyr:如何计算 2 个 Spark 表之间的相关系数?

来自分类Dev

为什么这两个列表的相关系数等于1?

来自分类Dev

高效的列相关系数计算

来自分类Dev

逐行计算相关系数

来自分类Dev

高效的列相关系数计算

来自分类Dev

矩阵所有成对行的相关系数和p值

来自分类Dev

如何按因子查找两列之间的相关系数?

来自分类Dev

熊猫散射矩阵显示相关系数

来自分类Dev

如何编写计算2个数字的相关系数的R代码

来自分类Dev

python相关系数

来自分类Dev

如何计算groupby后的ewm相关系数?

来自分类Dev

R中一行的相关系数

来自分类Dev

两个矩阵之间的行相关

来自分类Dev

计算两个特定节点之间的关系数 - Neo4j / Cypher

来自分类Dev

SQL如何计算两个表之间的关系数并包含零?

来自分类Dev

R如何计算两个矩阵行之间的差异?

来自分类Dev

相关系数的p值

来自分类Dev

多个文件的相关系数

来自分类Dev

PairGrid上的Seaborn相关系数

来自分类Dev

在散点图上打印相关系数

来自分类Dev

为什么相关系数不同?

来自分类Dev

每日相关系数-Matlab

来自分类Dev

在散点图上打印相关系数

来自分类Dev

摘要提取相关系数

来自分类Dev

斯皮尔曼相关系数 R