notes-computer-programming-python-numeric

this:

  ravel_normalizedMinBlurredImage = empty(size(blurred_normalized_image1))
  ravel_blurred_normalized_image1 = ravel(blurred_normalized_image1)
  ravel_blurred_normalized_image2 = ravel(blurred_normalized_image2)


  for i in range(size(blurred_normalized_image1)):
    ravel_normalizedMinBlurredImage[i]= min(ravel_blurred_normalized_image1[i], ravel_blurred_normalized_image2[i])
  normalizedMinBlurredImage = reshape(ravel_normalizedMinBlurredImage, shape(blurred_normalized_image1))
  

is a lot faster than this:

  for i in range(size(blurred_normalized_image1)):
    unravel_index(i, shape(blurred_normalized_image1))] = min(ravel(blurred_normalized_image1)[i], ravel(blurred_normalized_image2)[i])

In the latter, I profiled it and unravel_index was taking most of the time. So, it's much faster to use reshape once rather than using unravel_index on each iteration.