加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

什么可能导致numpy.nanstd()返回nan?

发布时间:2020-12-20 11:41:23 所属栏目:Python 来源:网络整理
导读:我有一个相对较大的1-D阵列(20000个观测值).当我计算诸如标准偏差,平均值,总和之类的解释性统计数据时,我得到了纳米值,但是当我从同一个数组计算出一个percintle时,我得到了我期望的值.我尝试过numpy.nanstd,nanmean等功能.我能做错什么?我正在使用 python
我有一个相对较大的1-D阵列(20000个观测值).当我计算诸如标准偏差,平均值,总和之类的解释性统计数据时,我得到了纳米值,但是当我从同一个数组计算出一个percintle时,我得到了我期望的值.我尝试过numpy.nanstd,nanmean等功能.我能做错什么?我正在使用 python 2.7.9

解决方法

在三种情况下,np.nanstd可能会返回NaN:

>如果输入为空
>如果输入中的所有元素都是NaN
>如果其中一个元素是正无穷大或负无穷大.要理解为什么会发生这种情况,请记住标准偏差的公式是

由于x包含inf,因此x的平均值也将为inf.因此,在计算与均值的偏差时,至少有一个元素等于inf-inf.如果您在IPython提示符下尝试此操作,您将看到inf-inf被定义为NaN.

在前两种情况下,您应该收到有用的警告:

RuntimeWarning: Degrees of freedom <= 0 for slice.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读