[转载] dataframe中有关inf的处理技巧

参考链接: Python中的numpy.isposinf

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

 

 

以上就是本文的内容,觉得好的可以关注下。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值