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

2023-12-28

我有一个相对较大的一维数组(20000 个观测值)。当我计算描述性统计数据(例如标准差、平均值、总和)时,我得到的是 nan 值,但是当我从同一数组计算百分比时,我得到了我期望的值。我尝试了 numpy.nanstd、nanmean 等函数。我可能做错了什么?我正在使用 python 2.7.9


有以下三种情况np.nanstd http://docs.scipy.org/doc/numpy-dev/reference/generated/numpy.nanstd.html可能会回来NaN:

  1. 如果输入为空

  2. 如果输入中的所有元素都是NaN

  3. 如果其中一个元素是正无穷大或负无穷大。要理解为什么会发生这种情况,请记住标准差的公式是

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

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

RuntimeWarning: Degrees of freedom <= 0 for slice.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

什么可能导致 numpy.nanstd() 返回 nan? 的相关文章

随机推荐