[SciPy-dev] Computing correlations with SciPy

John Hunter jdhunter at ace.bsd.uchicago.edu
Thu Mar 16 09:56:00 CST 2006


The following message is a courtesy copy of an article
that has been posted to comp.lang.python as well.

>>>>> "tkpmep" == tkpmep  <tkpmep at hotmail.com> writes:

    tkpmep> I want to compute the correlation between two sequences X
    tkpmep> and Y, and tried using SciPy to do so without success.l
    tkpmep> Here's what I have, how can I correct it?

    >>>> X = [1, 2, 3, 4, 5] Y = [5, 4, 3, 2, 1] import scipy
    >>>> scipy.corrcoef(X,Y)
    tkpmep> Traceback (most recent call last): File "<interactive
    tkpmep> input>", line 1, in ?  File
    tkpmep> "C:\Python24\Lib\site-packages\numpy\lib\function_base.py",
    tkpmep> line 671, in corrcoef d = diag(c) File
    tkpmep> "C:\Python24\Lib\site-packages\numpy\lib\twodim_base.py",
    tkpmep> line 80, in diag raise ValueError, "Input must be 1- or
    tkpmep> 2-d."  ValueError: Input must be 1- or 2-d.
    >>>>

Hmm, this may be a bug in scipy.  matplotlib also defines a corrcoef
function, which you may want to use until this problem gets sorted out

In [9]: matplotlib.mlab.corrcoef(X,Y)

In [10]: X = [1, 2, 3, 4, 5]

In [11]: Y = [5, 4, 3, 2, 1]

In [12]: matplotlib.mlab.corrcoef(X,Y)
Out[12]:
array([[ 1., -1.],
       [-1.,  1.]])





More information about the Scipy-dev mailing list