>>> import numarray.ieeespecial as ieee >>> ieee.inf inf >>> ieee.plus_inf inf >>> ieee.minus_inf -inf >>> ieee.nan nan >>> ieee.plus_zero 0.0 >>> ieee.minus_zero -0.0
>>> a = array([0.0, 1.0]) >>> b = a/0.0 Warning: Encountered invalid numeric result(s) in divide Warning: Encountered divide by zero(s) in divide >>> b array([ nan, inf])
>>> b == ieee.nan array([0, 0], type=Bool)
>>> ieee.isnan(b) array([1, 0], type=Bool) >>> ieee.isinf(b) array([0, 1], type=Bool) >>> ieee.isfinite(b) array([0, 0], type=Bool)
>>> b[ieee.isnan(b)] = 999 >>> b[ieee.isinf(b)] = 5 >>> b array([ 999., 5.])
Here's an easy approach for compressing your data arrays to remove NaNs:
>>> x, y = arange(10.), arange(10.) >>> x[5] = ieee.nan >>> y[6] = ieee.nan >>> keep = ~ieee.isnan(x) & ~ieee.isnan(y) >>> x[keep] array([ 0., 1., 2., 3., 4., 7., 8., 9.]) >>> y[keep] array([ 0., 1., 2., 3., 4., 7., 8., 9.])
Send comments to the NumArray community.