ok modifying the for in this way (zipping an array of matrix drive it crazy) it works
dko=0 for gammar in gmils: omC = (1.5)*(gammar**3)*c/(rho*rlc) gig = omC*hcut/eVtoErg #check the single emission for w in eel: omega = (10**(w*stepENE+Lemin))*eVtoErg/hcut x = omega/omC kap = instruments.kappa(x) Iom = (1.732050808/c)*(e**2)*gammar*kap #jackson dI/domega P = Iom*(c/(rho*rlc))/(2*pi) #jackson P phps = P/(hcut*omega) #photons per second www = phps/(stepPHA*sin(zobs)*stepOB) MYMAPS[dko][i,j,w] += www dko += 1 count = count + 1 Now I will tell you how much it takes. Thanks Gabriele 2014-04-11 10:05 GMT-04:00 Gabriele Brambilla < gb.gabrielebrambi...@gmail.com>: > ok, it seems that the code don't enter in this for loop > > for gammar, MYMAP in zip(gmlis, MYMAPS): > > I don't understand why. > > Thanks > > Gabriele > > > 2014-04-11 9:56 GMT-04:00 Gabriele Brambilla < > gb.gabrielebrambi...@gmail.com>: > > Hi, I'm sorry but there is a big problem. >> the code is producing empty file.dat. >> >> I think it's because of this that previously I have done that strange >> trick of myinternet... >> >> So: >> >> for my_line in open('data.dat'): >> >> myinternet = [] >> >> gmlis = [] >> >> print('reading the line', count, '/599378') >> >> my_parts = [float(i) for i in my_line.split()] >> >> phase = my_parts[4] >> >> zobs = my_parts[5] >> >> rho = my_parts[6] >> >> >> >> gmils=[my_parts[7], my_parts[8], my_parts[9], >> my_parts[10], my_parts[11]] >> >> >> >> i = int((phase-phamin)/stepPHA) >> >> j = int((zobs-obamin)/stepOB) >> >> >> >> for gammar, MYMAP in zip(gmlis, MYMAPS): >> >> >> >> omC = (1.5)*(gammar**3)*c/(rho*rlc) >> >> gig = omC*hcut/eVtoErg >> >> #check the single emission >> >> >> >> for w in eel: >> >> omega = >> (10**(w*stepENE+Lemin))*eVtoErg/hcut >> >> x = omega/omC >> >> kap = instruments.kappa(x) >> >> Iom = (1.732050808/c)*(e**2)*gammar*kap >> #jackson dI/domega >> >> P = Iom*(c/(rho*rlc))/(2*pi) #jackson P >> >> phps = P/(hcut*omega) #photons per second >> >> www = phps/(stepPHA*sin(zobs)*stepOB) >> >> MYMAP[i,j,w] += www >> >> >> >> count = count + 1 >> >> when I exit here the MYMAP matrix has all the cells = 0. >> >> Now I will try to fiugre it out why. >> >> Thanks >> >> Gabriele >> >> >> >> 2014-04-11 9:20 GMT-04:00 Gabriele Brambilla < >> gb.gabrielebrambi...@gmail.com>: >> >> Hi Danny, >>> I'm quiet impressed. >>> the program takes near 30 minutes instead of more than 8 hours! >>> >>> this is the profile: >>> Fri Apr 11 09:14:04 2014 restats >>> >>> 19532732 function calls in 2105.024 seconds >>> >>> Ordered by: internal time >>> >>> ncalls tottime percall cumtime percall filename:lineno(function) >>> 1 2087.606 2087.606 2105.006 2105.006 skymapsI.py:44(mymain) >>> 18101000 12.757 0.000 12.757 0.000 {method 'write' of 'file' >>> objects} >>> >>> 715853 3.473 0.000 3.473 0.000 {method 'split' of 'str' >>> objects} >>> 715854 1.162 0.000 1.162 0.000 {zip} >>> 1 0.018 0.018 2105.024 2105.024 <string>:1(<module>) >>> 6 0.006 0.001 0.006 0.001 {open} >>> 5 0.002 0.000 0.002 0.000 {method 'close' of 'file' >>> objects} >>> >>> 1 0.000 0.000 0.000 0.000 >>> function_base.py:8(linspace) >>> 5 0.000 0.000 0.000 0.000 >>> {numpy.core.multiarray.zeros} >>> 1 0.000 0.000 0.000 0.000 >>> function_base.py:93(logspace) >>> 1 0.000 0.000 0.000 0.000 >>> {numpy.core.multiarray.arange} >>> 3 0.000 0.000 0.000 0.000 {range} >>> 1 0.000 0.000 0.000 0.000 {method 'disable' of >>> '_lsprof.Prof >>> iler' objects} >>> >>> I hope to have similar problems in the future to learn better how to do >>> with them! >>> but in the profile I don't see any operation regarding reading the file >>> or the mathematical operations...are them hidden in mymain()? >>> >>> thanks >>> >>> Gabriele >>> >>> >>> >>> >>> 2014-04-10 21:38 GMT-04:00 Danny Yoo <d...@hashcollision.org>: >>> >>> > Comment: You are looping over your sliced eel five times. Do you >>>> > need to? I like eel salad a great deal, as well, but, how about: >>>> > >>>> > >>>> > for k in eel: >>>> > MYMAP1[i, j, k] = MYMAP1[i, j, k] + myinternet[oo] >>>> > MYMAP2[i, j, k] = MYMAP2[i, j, k] + myinternet[oo] >>>> > MYMAP3[i, j, k] = MYMAP3[i, j, k] + myinternet[oo] >>>> > MYMAP4[i, j, k] = MYMAP4[i, j, k] + myinternet[oo] >>>> > MYMAP5[i, j, k] = MYMAP5[i, j, k] + myinternet[oo] >>>> > oo = oo + 1 >>>> >>>> >>>> Hi Gabriele, >>>> >>>> Also note that, when Martin looked at this part of the code, he >>>> unfortunately misinterpreted its effect; Martin's proposed rewrite >>>> here does not preserve the meaning of the original code. But rather >>>> than wag my finger at how Martin interpreted the code, I'd rather make >>>> the observation that this is a warning sign that the original code >>>> here was not easy to understand. >>>> >>> >>> >> >
_______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor