相关表

时间:2016-11-28 12:50:35

标签: python numpy iteration correlation

假设您有数百个numpy数组,并且您想要计算每个数组之间的相关性。我在嵌套for循环的帮助下计算了它。但是,执行花费了大量时间(20分钟!)。使计算更有效的一种方法是计算相关表对角线的一半,将其复制到另一半并使对角线等于1.我的意思是,相关(x,y)=相关(y,x)并且相关性(x,x)总是等于1.但是,通过这些校正,代码也将花费很多时间(大约7-8分钟)。还有其他建议吗?

My code
for x in data_set:
    for y in data_set:
        correlation = np.corrcoef(x,y)[1][0]

1 个答案:

答案 0 :(得分:1)

我很确定你可以通过创建一个二维数组并计算其相关矩阵来实现更快的结果(而不是逐个计算成对相关)。

从numpy的corrcoef文档中输入可以是: "包含多个变量和观测值的1-D或2-D阵列。 m的每一行代表一个变量,每一列都是对所有这些变量的单一观察。" https://docs.scipy.org/doc/numpy/reference/generated/numpy.corrcoef.html