dan*_*gom 3 python numpy correlation
我想计算每个之间的相关列向量矩阵的阿与每个列向量矩阵的乙。
考虑:
vectorsize = 777
A = np.random.rand(vectorsize, 64)
B = np.random.rand(vectorsize, 36)
corr = np.corrcoef(A, B, rowvar=False)
Run Code Online (Sandbox Code Playgroud)
np.corrcoef在这种情况下,的输出将是一个 100x100 的矩阵。这是什么意思?
直觉上我希望得到一个 64x36 的矩阵。
小智 6
如果 corrcoef 方法得到两个数组 x 和 y,它会将它们堆叠起来(如果 rowVar 为 True,则垂直堆叠,如果 rowVar 为 False,则水平堆叠)。在来源:
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))
Run Code Online (Sandbox Code Playgroud)
在统计术语中,它认为 A 有 64 个变量(在列中,因为 rowVar 为假),而 B 有 36 个。将它们叠加会得到 100 个变量,因此是 100 x 100 相关矩阵。
相关矩阵总是对称的(和半正定的)。如果您只想要 x 和 y 变量之间的相关性,它们位于大小为 64 x 36 的非对角块中:用切片提取它。这是输出的结构:
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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5759 次 |
| 最近记录: |