[Numpy-discussion] Invalid value encoutered : how to prevent numpy.where to do this?

Eric Emsellem eric.emsellem@eso....
Sat Jan 5 08:15:02 CST 2013

Dear all,

I have a code using lots of "numpy.where" to make some constrained 
calculations as in:

data = arange(10)
result = np.where(data == 0, 0., 1./data)

# or
data1 = arange(10)
data2 = arange(10)+1.0
result = np.where(data1 > data2, np.sqrt(data1-data2), np.sqrt(data2-data2))

which then produces warnings like:
/usr/bin/ipython:1: RuntimeWarning: invalid value encountered in sqrt

or for the first example:

/usr/bin/ipython:1: RuntimeWarning: divide by zero encountered in divide

How do I avoid these messages to appear?

I know that I could in principle use numpy.seterr. However, I do NOT 
want to remove these warnings for other potential divide/multiply/sqrt 
etc errors. Only when I am using a "where", to in fact avoid such 
warnings! Note that the warnings only happen once, but since I am going 
to release that code, I would like to avoid the user to get such 
messages which are irrelevant here (because I am testing, with the 
where, when NOT to divide by zero or take a sqrt of a negative number).


More information about the NumPy-Discussion mailing list