I am looking for a memory efficient python script for the following script. The following script works well for smaller dimension but the dimension of the matrix is 5000X5000 in my actual calculation. Therefore, it takes very long time to finish it. Can anyone help me how can I do that?
def check(v1,v2): if len(v1)!=len(v2): raise ValueError,"the lenght of both arrays must be the same" pass def d0(v1, v2): check(v1, v2) return dot(v1, v2) import numpy as np from pylab import * vector=[[0.1, .32, .2, 0.4, 0.8], [.23, .18, .56, .61, .12], [.9, .3, .6, .5, .3], [.34, .75, .91, .19, .21]] rav= np.mean(vector,axis=0) #print rav #print vector m= vector-rav corr_matrix= for i in range(0,len(vector)): tmp= x=sqrt(d0(m[i],m[i])) for j in range(0,len(vector)): y=sqrt(d0(m[j],m[j])) z=d0(m[i],m[j]) w=z/(x*y) tmp.append(w) corr_matrix.append(tmp) print corr_matrix