首页 > 解决方案 > np.nanstd 在 python 中返回 inf 值

问题描述

我想计算使用的标准偏差,np.arraynp.nanstd它返回inf而不是实际值。我的 numpy 数组看起来

[[1.19665046e-311 1.19665144e-311 nan ... 2.29685654e+049 4.98919540e+228]
 [2.00798195e+165  8.02088921e+035 ... nan nan 1.10386271e+031]
..]

计算 np.nanstd 后返回的值为

[inf inf inf inf inf inf inf inf inf 
inf inf inf inf inf inf inf inf inf
 inf inf inf inf]

为什么它会产生inf价值,我怎样才能获得实际价值?

标签: python-3.xnumpy

解决方案


乍一看,您的数组中的某些值太大了。举个4.98919540e+228例子。标准差由 计算root(sum(square(x-x_mean))/N),因此您计算的是 e+228 平方,即 e+456 - 比 python 可以处理的多。inf除非您输入较小的值,例如低于 e+150,否则它将继续显示。


推荐阅读