选择所有的nan值可以使用isnan()函数:
In [217]: val
Out[217]: array([ 0., 8., 3., 4., 7., 0., 3., nan, 2., 0.])
In [218]: val[np.isnan(val)]
Out[218]: array([nan])
选择所有非nan值的话,Numpy里没有提供直接的函数,用not(np.isnan())是不行的。有两种方法可以实现:
In [219]: val[np.logical_not(np.isnan(val))]
Out[219]: array([0., 8., 3., 4., 7., 0., 3., 2., 0.])
不过还有更简单的办法,使用逐元素的非运算“~”,注意不是减号
In [220]: val[~np.isnan(val)]
Out[220]: array([0., 8., 3., 4., 7., 0., 3., 2., 0.])