首页 > 解决方案 > numpy 中的 nanstd 不包含 nan

问题描述

根据numpy中对nanstd和nanmean等nan函数的描述,nan应该被忽略。但是,由于使用 nan 函数计算标准差和均值,我得到了 nan。

下面,我计算整个数组及其子集的均值和标准差。nan 值位于最后,因此如果我对其子集进行计算,则不包括在内。

>>> nanstd(arr[1,:1000])
0.83957712570078991
>>> nanstd(arr[1,:])
nan
>>> std(arr[1,:])
nan
numpy.__version__
'1.12.0'

根据这个答案,nanstd 可能返回 nan 的原因很少。这里是

  1. 如果输入为空 (不是这种情况)
  2. 如果输入中的所有元素都是 NaN (不是这种情况)
  3. 其中一个元素是正无穷或负无穷。(我的数组中有一个 inf 值)

解决了

解决方案在这里

标签: python-2.7numpy

解决方案


正如对另一个问题的回答所提到的那样,nanstd 可能返回 nan 的原因很少。这里是

  1. 如果输入为空 (不是这种情况)
  2. 如果输入中的所有元素都是 NaN (不是这种情况)
  3. 其中一个元素是正无穷或负无穷。(我的数组中有一个 inf 值)

通过列表,我发现我的数组中确实有 inf 值


推荐阅读