我正在使用numpy,想要计算ndarray的协方差矩阵。我正在尝试使用 numpy.cov((,但没有得到正确的结果。更多详情如下。
我的 ndarray 是 768x8,其中 8 是我的数据集中的数字特征。
当我使用 MATLAB 计算协方差矩阵时,我得到一个 8x8(这是我需要的(,但是当我使用 np.cov(( 时,我得到一个不正确的 768x768。我尝试将 rowvar 参数更改为 true,但这不起作用。
对numpy.cov((的正确调用是什么?换句话说,我将如何使用numpy从MATLAB重现cov((结果。
令人惊讶的是,文档可能会告诉您。 应传递rowvar=False
以指示列表示变量。
>>> data.shape
(768, 8)
>>> numpy.cov(data, rowvar=False).shape
(8, 8)
,每一行都是观察,每一列都是特征,每个定义在numpi中交换,所以你需要做的就是转置,其中R是矩阵
np.cov(R.T)
或
np.cov(R, rowvar = False)