Dataframeにおけるinfの処理テクニック


numpyにおけるinfに関するドキュメント
infとは?
IEEE 754浮動小数点は無限大を表す.
どうして生まれたの?
>>> np.NINF
-inf
>>> np.inf
inf
>>> np.log(0)
-inf
>>> np.array([1,2])/0 #        
array([ inf,  inf])

infを生み出すメリットは何ですか?
今のところ何のメリットも見られませんが、単純にinfで無限大を表すだけで、理解と表現が便利です.
infを生むのはどんな悪いところがありますか?
ユーザにとってinfには特殊な処理が必要であり,作業量が増大した.なぜ特別な処理が必要なのですか?多くの機械学習アルゴリズムライブラリはinfの処理をサポートしていないからである.
どうやって処理しますか?
一般的な処理方法:
  • 非処理
  • 置換
  • どのようにinfの位置を取得して埋めますか?
    '''
    isinf:             
    
    isposinf:           
    
    isneginf:           
    
    isnan:          
    
    isfinite:          (     ,             )
    
    '''
    >>> np.isinf(np.inf) #        ,isinf    。
    True
    
    >>> np.isinf(np.array([1,np.inf]))
    array([False,  True], dtype=bool)
    
    >>>np.isinf(pd.DataFrame(np.array([1,np.inf])))
           0
    0  False
    1   True
    
    >>>s1 = pd.Series([1,2,3,np.inf])
    >>>s1
    0    1.0
    1    2.0
    2    3.0
    3    NaN
    dtype: float64
    
    # inf   999
    >>>s1[np.isinf(s1)] = 999
    >>>s1
    0    1.0
    1    2.0
    2    3.0
    3  999.0
    dtype: float64
    
    # inf  np.nan (    )
    >>>s1[np.isinf(s1)] = np.nan
    >>>s1
    0    1.0
    1    2.0
    2    3.0
    3    NaN
    dtype: float64
    
    

    以上が本文の内容で、良いのは注目することができると思います.