i have array x
, extract logical mask. x
contains nan
values, , mask operation raises warning, trying avoid.
here code:
import numpy np x = np.array([[0, 1], [2.0, np.nan]]) mask = np.isfinite(x) & (x > 0)
the resulting mask correct (array([[false, true], [ true, false]], dtype=bool)
), warning raised:
__main__:1: runtimewarning: invalid value encountered in greater
how can construct mask in way avoids comparing against nans? not trying suppress warning (which know how do).
we in 2 steps - create mask of finite ones , use same mask index , select valid mask of remaining finite elements off x
testing , setting remaining elements in mask. so, have implementation -
in [35]: x out[35]: array([[ 0., 1.], [ 2., nan]]) in [36]: mask = np.isfinite(x) in [37]: mask[mask] = x[mask]>0 in [38]: mask out[38]: array([[false, true], [ true, false]], dtype=bool)
Comments
Post a Comment