python-2.7 - 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 的原因很少。这里是
- 如果输入为空 (不是这种情况)
- 如果输入中的所有元素都是 NaN (不是这种情况)
- 其中一个元素是正无穷或负无穷。(我的数组中有一个 inf 值)
解决了
解决方案
正如对另一个问题的回答所提到的那样,nanstd 可能返回 nan 的原因很少。这里是
- 如果输入为空 (不是这种情况)
- 如果输入中的所有元素都是 NaN (不是这种情况)
- 其中一个元素是正无穷或负无穷。(我的数组中有一个 inf 值)
通过列表,我发现我的数组中确实有 inf 值
推荐阅读
- python - 如何获取每个键索引(第一级)的值并使用它来做某事
- assembly - NASM 汇编器浮点加法
- sqlite - Sqlite pviot 添加带有总计的计数行
- python - 在 python 中创建脚本以更改 SVG 文件中的文本
- javascript - 将输入字段中的数组显示为数组
- python - sklearn.datasets.make_s_curve 输出含义
- django - 获取按最近条目排序的主题
- android - 为 cordova/phonegap 过滤 Android Studio Logcat
- sql-server - 使用 .GroupBy() 方法将此 SQL 查询转换为 LINQ
- forms - Symfony 4 - 默认值形式不起作用