
This message was sent from Geocrawler.com by "andrew x swan" <a.swan@anprod.csiro.au> Be sure to reply to that address. hi - i've only just started using python and numpy... the program i wrote below runs much more slowly than a fortran equivalent. ie. on a dataset where the order of the matrix is (3325,3325), python took this long: 362.25user 0.74system 6:09.78elapsed 98%CPU and fortran took this long: 2.68user 1.12system 0:03.89elapsed 97%CPU is this because the element by element calculations involved are contained in python for loops? thanks #!/usr/bin/python from Numeric import * def nrm(pedigree): n_animals = len(pedigree) + 1 nrm = zeros((n_animals,n_animals),Float) for i in xrange(1,n_animals): isire = pedigree[i-1][1] idam = pedigree[i-1][2] nrm[i,i] = 1.0 + 0.5 * nrm[isire,idam] for j in xrange(i+1,n_animals): jsire = pedigree[j-1][1] jdam = pedigree[j-1][2] nrm[j,i] = 0.5 * (nrm[jsire,i] + nrm[jdam,i]) nrm[i,j] = nrm[j,i] return nrm if __name__ == '__main__': test_ped = [(1,0,0),(2,0,0),(3,1,0),(4,1,2), (5,3,4),(6,1,4),(7,5,6)] a = nrm(test_ped) print a Geocrawler.com - The Knowledge Archive