我有一个X数据集,它有9个特征和683行(683x9)。我想采用这个X数据集的协方差矩阵和另一个与X具有相同形状的数据集。我使用np.cov(originalData, generatedData, rowvar=False)
代码来获取它,但它返回一个形状为18x18的协方差矩阵。我期望获得9x9协方差矩阵。你能帮我解决一下吗?
答案 0 :(得分:1)
方法cov
计算您提供的所有变量对的协方差。一个数组中有9个变量,另一个数组中有9个变量。这总共18个。所以你得到18乘18矩阵。 (在计算协方差之前,cov
连接你给它的两个数组)。
如果您只对第一个数组中变量与第二个变量的协方差感兴趣,请选择行的前半部分和后半部分:
C = np.cov(originalData, generatedData, rowvar=False)[:9, 9:]
或者通常,两个不一定相等的矩阵X和Y,
C = np.cov(X, Y, rowvar=False)[:X.shape[1], Y.shape[1]:]