gpt4 book ai didi

python-3.x - numpy.corrcoef() 对返回值的疑问

转载 作者:行者123 更新时间:2023-12-02 19:32:40 27 4
gpt4 key购买 nike

我需要两个矩阵 X,Y 之间的 PIL 逊相关系数。如果我运行代码 corr=numpy.corrcoef(X,Y) 我的输出是一个具有相关系数的矩阵。但是我需要一个值来表示两个矩阵之间的相关性。

我刚刚在这个 kennytm 上看到了 answer为了有一个值,我应该写 numpy.corrcoef(X,Y)[1,0]

这个解决方案有效,但我不明白方括号内的数字意味着什么以及为什么将它们相加我得到一个单一值。

我将 1 和 0 解释为系数的限制,但是矩阵内的所有系数会发生什么情况?对它们进行什么类型的计算以获得单个值?如果我更改方括号内的数字,例如 [1,-1]( correlation, anticorrelation ),则 corr 的值会发生变化,所以我很困惑应该在里面使用哪些数字括号。

最佳答案

numpy.corrcoef 返回一个包含每对行的相关系数的矩阵。例如,numpy.corrcoef(A,B) 表示 A.shape=(3,3)B.shape=(3,3) 将返回一个 (6,6) 矩阵,因为有 36 行组合。请注意,它是一个对称矩阵,因为它返回(例如)A[1],B[1](索引 [1,4])和 B 的相关性[1],A[1](索引[4,1])。当您有两个一维数组时,您会得到一个 (2,2) 矩阵:第一个数组与其自身 [0,0] 的相关性,第一个数组与第二个数组 [0,1] 的相关性、第二个数组与第一个数组 [1,0] 的相关性以及第二个数组与本身[1,1]

import numpy as np
A = np.random.randint(low=0, high=99, size=(3,3))
B = np.random.randint(low=0, high=99, size=(3,3))
C = np.corrcoef(A,B)
print(C[1,4]==np.corrcoef(A[1],B[1])[0,1]) # True

如果您想要二维相关性(如图像之间的相关性),请展平二维数组,以便每个数组获得一行。然后,该相关矩阵的元素 [0,1][1,0] 将表示二维数组如何彼此完全关联。

print(np.corrcoef(A.flatten(), B.flatten())[0,1])

关于python-3.x - numpy.corrcoef() 对返回值的疑问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61557443/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com