Sunday, 29 September 2013

Python faster way to run these functions?

Python faster way to run these functions?

def create_tanimoto(vectorsA,vectorsE):
tanimoto=[]
for i in range(len(vectorsA)):
buff1=0
temp=0
tanimoto.append([])
tanimoto[i]=0
counter=0
for j in range(len(vectorsE)):
counter=0
e=vectorsE[j]
a=vectorsA[i]
arithmitis=0
for k in range(8000):
if a[k]>0.0 and e[k]>0.0:
arithmitis+=1
if e[k]>0.0 or a[k]>0.0:
counter+=1
temp=float(arithmitis)/(len(vectorsA[i])+len(vectorsE[j])-counter)
if temp>tanimoto[i]:
tanimoto[i]=temp
return tanimoto
def create_cosine(vectorsA,vectorsE):
cosine=[]
for i in range(len(vectorsA)):
temp=0
cosine.append([])
cosine[i]=0
A=vectorsA[i]
for j in range(len(vectorsE)):
arithmitis=0
E=vectorsE[j]
paronomastis=sum(n**2 for n in A)*sum(m**2 for m in E)
for k in range(8000):
arithmitis+=A[k]*E[k]
temp=arithmitis/paronomastis
if cosine[i]<temp:
cosine[i]=temp
return cosine

No comments:

Post a Comment