Это правильное поведение - np.cov
возвращает ковариационную матрицу.
В частности, он принимает каждую строку входных данных как переменную, причем столбцы представляют разные значенияэти переменные. Чтобы изменить это поведение, передайте rowvar=False
.
В частности, если у вас есть две переменные, представленные в виде двух столбцов матрицы, вы можете использовать np.cov(data, rowvar=False)
(или np.cov(data.T)
), чтобы получить 2 на 2ковариационная матрица, в которой элементы в cov[0,1]
и cov[1,0]
будут ковариацией между двумя переменными.
Это также обсуждается здесь .