时间:2021-01-18 14:46:30 | 栏目:Python代码 | 点击:次
尽管我们可以将所有的NaN替换成0,但是由于并不知道这些值的意义,所以这样做是个下策。如果它们是开氏温度,那么将它们置成0这种处理策略就太差劲了。
下面我们用平均值来代替缺失值,平均值根据那些非NaN得到。
from numpy import * datMat = mat([[1,2,3],[4,Nan,6]]) numFeat = shape(datMat)[1] for i in range(numFeat): meanVal = mean(datMat[nonzero(~isnan(datMat[:,i].A))[0],i]) #values that are not NaN (a number) datMat[nonzero(isnan(datMat[:,i].A))[0],i] = meanVal #set NaN values to mean