与列的协方差
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
,因此对于 n
以 n
这样的标量结尾的列,您可以在此处使用两种使用 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
如果我有一个带 X.shape=(m,n)
的 numpy 数组 X 和一个带 y.shape=(m,1)
的第二列向量 y,我如何不使用 for 循环计算 X 和 y 的每一列的协方差?我希望结果的形状为 (m,1)
或 (1,m)
.
假设输出的形状是 (1,n)
,即每个标量用于 covariance
操作,用于 A
的每一列和 B
,因此对于 n
以 n
这样的标量结尾的列,您可以在此处使用两种使用 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