2017-04-02 18 views
3

私はnumpyを使用しており、ndarrayの共分散行列を計算したいと考えています。 numpy.cov()を使用しようとしていますが、正しい結果が得られません。詳細は以下のとおりです。ナンシー共分散行列numpy.cov

私のndarrayは768x8です。ここで8は私のデータセットの数字の機能です。

私は共分散行列を計算するために私が必要とする8x8を取得しますが、np.cov()を使用すると、768x768が正しくありません。私はrowvar引数をtrueに変更しようとしましたが、これはうまくいきません。

numpy.cov()の正しい呼び出しは何でしょうか?つまり、numpyを使用してMATLABのcov()結果を再現するにはどうすればよいでしょうか。

答えて

8

驚いたことに、documentationが表示される場合があります。列が変数を表すことを示すには、rowvar=Falseを渡す必要があります。

>>> data.shape 
(768, 8) 
>>> numpy.cov(data, rowvar=False).shape 
(8, 8) 
+0

ありがとうございます。私はドキュメントを参照しましたが、rowvarのデフォルトがTrue(そしてFalseではない)であることに気づいていませんでした! – user152945

+0

numpy.covに渡すと転置すると、8×8行列が得られます。 – user3341078