[SOLVED] Numpy Covariance Matrix numpy.cov

Issue

I am using numpy and want to compute the covariance matrix for an ndarray. I am trying to use numpy.cov() but am not getting the correct results. More details below.

My ndarray is 768×8 for where 8 is the numbers features in my data set.

When I use MATLAB to compute the covariance matrix, I get a 8×8 (which is what I require), but when I use np.cov(), I get a 768×768 which is incorrect. I tried changing the rowvar argument to true and this does not work.

What would be the correct call to numpy.cov()? In other words, how would I reproduce the cov() results from MATLAB using numpy.

Solution

Amazingly, the documentation might tell you. You should pass rowvar=False to indicate that columns represent variables.

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

Answered By – donkopotamus

Answer Checked By – Marie Seifert (BugsFixing Admin)

Leave a Reply

Your email address will not be published. Required fields are marked *