numpy: Invalid value encountered in true_divide

You may have a NAN, INF, or NINF floating around somewhere. Try this:

np.isfinite(diff_images).all()
np.isfinite(b_0).all()

If one or both of those returns False, that's likely the cause of the runtime error.


The reason you get the runtime warning when running this:

log_norm_images = np.where(b_0 > 0, np.divide(diff_images, b_0), 0)

is that the inner expression

np.divide(diff_images, b_0)

gets evaluated first, and is run on all elements of diff_images and b_0 (even though you end up ignoring the elements that involve division-by-zero). In other words, the warning happens before the code that ignores those elements. That is why it's a warning and not an error: there are legitimate cases like this one where the division-by-zero is not a problem because it's being handled in a later operation.