计算多个协方差矩阵



我有一个大小为(1875, 77)的矩阵X。对于每一列,我想计算协方差矩阵,即x_1 @ x_1.T,其中x_1具有形状(1875, 1)。理想情况下,我希望在没有for循环的情况下一次性完成这项工作。有简单的方法吗?

我曾考虑根据列索引上下每列填充0(因此x_1将有76列零,x_2将在顶部有一个(77, 1)零列填充和75个零列填充(,但这似乎会使事情更加复杂。

您可能想要这个:

import numpy as np
r, c = 1875, 77
X = np.random.rand(r, c)
covs = X.T[..., None] @ X.T[:, None, :]
covs.shape
# (77, 1875, 1875)

这简单地执行c个矩阵乘法,对于X的每列为1。这里,X.T[..., None]的形状为(c,r,1(X.T[:, None, :]的形状为(c,1,r(

相关内容

  • 没有找到相关文章

最新更新