Great !!! now it is really fast and powerful !!<br>I will follow your advices and read the docs and tutorials.<br><br>Thanks !<br><br><br><div class="gmail_quote">2009/6/26 Derek Homeier <span dir="ltr">&lt;<a href="mailto:derek@astro.physik.uni-goettingen.de">derek@astro.physik.uni-goettingen.de</a>&gt;</span><br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><div class="im">On 26 Jun 2009, at 11:32, Johann Cohen-Tanugi wrote:<br>
<br>
</div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><div class="im">
this is very very bad : have a look at the numpy tutorials or user&#39;s<br>
guide. You are not making use of vectorization....<br>
<br>
Johann<br>
<br></div><div class="im">
Jose Miguel Ibáñez wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Hello !<br>
<br>
I am trying to iterate through the pixels  of  an FITS image read<br>
previusly with PyFits,<br>
but it is too slow (more that 1CPU minute), so my question is if is<br>
there any other way to do that in a<br>
more efficient/fast  way.<br>
<br>
That&#39;s the code I&#39;m using:<br>
------------------------------------------------------------------<br>
f=pyfits.open(&#39;/tmp/c1.fits&#39;,memmap=1)<br>
b=numpy.zeros([2048,2048],dtype=&#39;float32&#39;)<br>
cdata=f[0].data.copy()<br>
f.close()<br>
print &#39;start loop...&#39;<br>
for i in range(0,2048):<br>
   for j in range(0,2048):<br>
       if cdata[i,j]&lt;1 or cdata[i,j]&gt;100000:<br>
           b[i,j]=1<br>
</blockquote></div></blockquote>
<br>
Correct; basically the numpy way to achieve what you want to do would look like<br>
<br>
b[ (cdata&lt;1) | (cdata&gt;1.e5) ] = 1<br>
<br>
and should take fractions of a second. As Johann said, read the tutorials to get<br>
familiar with the basic operations.<br>
<br>
Cheers,<br><font color="#888888">
                                                                Derek<br>
<br>
</font></blockquote></div><br>