关于np.nan需要注意的地方总结如下:
- np.nan不是空对象。
- 对列表中的nan进行操作时不能用"==np.nan"来判断。只能用np.isnan()来操作。
- np.nan的数据类型是float。
import numpy as np
np.nan == np.nan
Out[3]: False
aa = np.array([1,2,3,np.nan,np.nan,4,5,np.nan])
aa
Out[5]: array([ 1., 2., 3., nan, nan, 4., 5., nan])
aa[aa==np.nan] = 100 #错误方式
aa
Out[7]: array([ 1., 2., 3., nan, nan, 4., 5., nan])
aa[np.isnan(aa)] = 100 #对nan操作的正确方式
aa
Out[9]: array([ 1., 2., 3., 100., 100., 4., 5., 100.])
type(np.nan)
Out[10]: float