Normalise between 0 and 1 ignoring NaN

前端 未结 3 826
一生所求
一生所求 2020-12-09 16:25

For a list of numbers ranging from x to y that may contain NaN, how can I normalise between 0 and 1, ignoring the NaN val

3条回答
  •  渐次进展
    2020-12-09 16:37

    consider pd.Series s

    s = pd.Series(np.random.choice([3, 4, 5, 6, np.nan], 100))
    s.hist()
    


    Option 1
    Min Max Scaling

    new = s.sub(s.min()).div((s.max() - s.min()))
    new.hist()
    


    NOT WHAT OP ASKED FOR
    I put these in because I wanted to

    Option 2
    sigmoid

    sigmoid = lambda x: 1 / (1 + np.exp(-x))
    
    new = sigmoid(s.sub(s.mean()))
    new.hist()
    


    Option 3
    tanh (hyperbolic tangent)

    new = np.tanh(s.sub(s.mean())).add(1).div(2)
    new.hist()
    

提交回复
热议问题