与列的协方差

Covariance with a columns

如果我有一个带 X.shape=(m,n) 的 numpy 数组 X 和一个带 y.shape=(m,1) 的第二列向量 y,我如何不使用 for 循环计算 X 和 y 的每一列的协方差?我希望结果的形状为 (m,1)(1,m).

假设输出的形状是 (1,n),即每个标量用于 covariance 操作,用于 A 的每一列和 B,因此对于 nn 这样的标量结尾的列,您可以在此处使用两种使用 covariance formula.

的方法

方法 #1:使用广播

np.sum((A - A.mean(0))*(B - B.mean(0)),0)/B.size

方法 #2:使用矩阵乘法

np.dot((B - B.mean(0)).T,(A - A.mean(0)))/B.size