[Numpy-discussion] nan division warnings

mdekauwe mdekauwe at gmail.com
Tue Aug 30 23:39:36 EDT 2011


Hi,

this is probably my lack of understanding...when i set up some masks for 2
arrays and try to divide one by the other I get a runtime warning. Seemingly
this is when I am asking python to divide one nan by the other, however I
thought by masking the array numpy would then know to ignore these nans? For
example

import numpy as np
a = np.array([4.5, 6.7, 8.0, 9.0, 0.00001])
b = np.array([0.0001, 6.7, 8.0, 9.0, 0.00001])
a = np.ma.where(np.logical_or(a<0.01, b<0.01), np.nan, a)
b = np.ma.where(np.logical_or(a<0.01, b<0.01), np.nan, b)
a/b

will produce

…./numpy/ma/core.py:772: RuntimeWarning: invalid value encountered in
absolute 
return umath.absolute(a) * self.tolerance >= umath.absolute(b)

but of course give the correct result

masked_array(data = [-- 1.0 1.0 1.0 --],
             mask = [ True False False False  True],
       fill_value = 1e+20)

But what is the correct way to do this array division such that I don't
produce the warning? The only way I can see that you can do it is a bit
convoluted and involves empty the array of the masked values, e.g.

a = a[np.isnan(a) == False] 
b = b[np.isnan(b) == False]
a/b

thanks,

Martin
-- 
View this message in context: http://old.nabble.com/nan-division-warnings-tp32369310p32369310.html
Sent from the Numpy-discussion mailing list archive at Nabble.com.




More information about the NumPy-Discussion mailing list