gpt4 book ai didi

python - 了解两个不同大小的矩阵的 np.corrcoef 输出

转载 作者:太空宇宙 更新时间:2023-11-04 07:57:06 26 4
gpt4 key购买 nike

我想计算矩阵A的每个列向量与矩阵B 列向量之间的相关性强>.

考虑:

vectorsize = 777 
A = np.random.rand(vectorsize, 64)
B = np.random.rand(vectorsize, 36)
corr = np.corrcoef(A, B, rowvar=False)

np.corrcoef 的输出在这种情况下将是一个 100x100 矩阵。这是什么意思?

凭直觉我希望得到一个 64x36 矩阵。

最佳答案

如果方法 corrcoef 得到两个数组 x 和 y,它会将它们堆叠起来(如果 rowVar 为 True,则垂直堆叠,如果 rowVar 为 False,则水平堆叠)。在source :

if y is not None:
y = array(y, copy=False, ndmin=2, dtype=dtype)
if not rowvar and y.shape[0] != 1:
y = y.T
X = np.vstack((X, y))

在统计术语中,它认为 A 有 64 个变量(在列中,因为 rowVar 为 false),B 有 36 个。将它们堆叠起来可以得到 100 个变量,因此得到 100 x 100 的相关矩阵。

相关矩阵总是对称的(半正定的)。如果您只想要 x 和 y 变量之间的相关性,则它们位于大小为 64 x 36 的非对角线 block 中:通过切片将其提取。这是输出的结构:

 corr(x, x), size 64 by 64  |  corr(x, y), size 64 by 36
---------------------------+---------------------------
corr(y, x), size 36 by 64 | corr(y, y), size 36 by 36

关于python - 了解两个不同大小的矩阵的 np.corrcoef 输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46846193/

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