Hello Chaos, Whatever you do in "#Actions here ..." might be expressed nicely as a ufunction for numeric. Then you might be able to convert the expression to a numeric expression. Check out numpy/scipy.
In general, if thisHeight, thisWidth are large use xrange not range. range() generates a list of numbers first then iterates through them. So try that first. Then of course if you do the whole thing many times you could just pre-generate the indices as in: all_indices=[] for i in xrange(thisHeight): for j in xrange(thisWidth): all_indices.append( (i,j) ) Then each time you need to run '#Actions here...' you can just use for (i,j) in all_indices: #Actions here ... blah blah In general, if there would be a way to significantly optimize generic for loops, they would probably be already optimized... Nick V. Chaos wrote: > As my first attempt to loop through every pixel of an image, I used > > for thisY in range(0, thisHeight): > for thisX in range(0, thisWidth): > #Actions here for Pixel thisX, thisY > > But it takes 450-1000 milliseconds > > I want speeds less than 10 milliseconds > > I have tried using SWIG, and pypy but they all are unsuccessfull in > compiling my files. -- http://mail.python.org/mailman/listinfo/python-list