2017-07-16 10 views
1

9つの機能と683行(683x9)のXデータセットを持っています。このXデータセットの共分散行列と、Xと同じ形状を持つ別のデータセットを取りたいと思います。私はnp.cov(originalData, generatedData, rowvar=False)コードを使用しますが、18x18の共分散行列を返します。私は9x9の共分散行列を得ることを期待していました。あなたはそれを修正するために私を助けてもらえますか?numpy.cov()は予期しない出力を返します

+0

ここで何が起こっているのかについて詳しく解説していない限り、これは答えることができません。あなたの問題を実証し、他人がその問題を再現するのを助ける*最小の*例です。 – tadman

答えて

1

メソッドcovは、すべての個の変数の共分散を計算します。 1つの配列に9つの変数があり、もう1つの配列には9つの変数があります。それは合計で18です。 18行×18行の行列が得られます。 (フードの下では、covは共分散を計算する前に与えた2つの配列を連結します)。で、

C = np.cov(originalData, generatedData, rowvar=False)[:9, 9:] 

または一般に:あなたは第二の変数を持つ第一の配列からの変数の共分散にのみ関心がある場合

、列の行の前半と後半を選びます2つの行列XとYが必ずしも等しいわけではありません。

C = np.cov(X, Y, rowvar=False)[:X.shape[1], Y.shape[1]:] 
関連する問題