[SciPy-User] corrcoef and dump

Vincent Davis vincent@vincentdavis....
Sat Jun 26 19:31:42 CDT 2010

Her is a by row corr function, You'll need to decide how you want the
results. I took this from a larger function, and although it is called
by_row_corr() I think it return by col. I was using this on a 120,000
X 120,000 array. Slow but no memory problem.

def by_row_corr(anarray, test_array):
        stdarray = (anarray-anarray.mean(0))/anarray.std(0)  #standardize
        stdtestarray = np.append(anarray,[test_array], axis=0)
        stdtestarray =
(stdtestarray-stdtestarray.mean(0))/stdtestarray.std(0)  #standardize
        nobs, nvars = stdarray.shape #For the test array the noobs
will increase by 1
        sumcorrdiff = np.empty(nvars)
        # calculate correlation coefficient for each variable with all others
        for col in xrange(nvars):
            corr = np.dot(stdarray[:,col],stdarray)/nobs
            #print 'corr', corr
            corrt = np.dot(stdtestarray[:,col],stdtestarray)/(nobs+1)
I think you will want a yield statement at the end. As I said I took
this from a larger function.


On Fri, Jun 25, 2010 at 11:04 AM, R. Padraic Springuel
<R.Springuel@umit.maine.edu> wrote:
> Each of the 15 arrays between which I want the calculations has
> 6,695,970 entries in it.  I tried feeding corrcoef just two of the lists
> and while I don't get a MemoryError (the python exception), I do get a
> couple of these errors:
> Python(337) malloc: *** mmap(size=2678390784) failed (error code=12)
> *** error: can't allocate region
> *** set a breakpoint in malloc_error_break to debug
> They don't seem to make the program fail, however, as I still get a
> result from corrcoef.
> I found a function I'd written some time before to calculate the
> correlation coefficient that doesn't raise that error and its results
> agree with those from corrcoef, so there has to be an implementation
> thing going on here with memory usage.
> --
> R. Padraic Springuel
> Research Assistant
> Department of Physics and Astronomy
> University of Maine
> Bennett 309
> Office Hours: By Appointment Only
> _______________________________________________
> SciPy-User mailing list
> SciPy-User@scipy.org
> http://mail.scipy.org/mailman/listinfo/scipy-user

More information about the SciPy-User mailing list