我有一个对应于概率分布的Nx1数组,即元素之和总和为1.这被表示为规则的numpy数组。由于N可能相对较大,例如10或20,许多单个元素非常接近于0.我发现当我记录(my_array)时,出现错误“FloatingPointError:在日志中遇到无效值”。请注意,这是在numpy故意设置seterr(invalid ='raise')之后。在Python中使用numpy/scipy记录非常小的值
我该如何处理这个数字问题?我想表示与概率分布相对应的向量及其取值日志,而不是四舍五入为0,因为那时我最终得到了引起错误的log(0)。
谢谢。
零概率是一个特例,为什么你会认为它与非零概率相同?为什么不简单地将其从数据中滤除并且仅与非零工作? – 2010-11-17 16:28:38
您是否仔细检查过发布中的所有值是否都是正值?没有负值和没有完全为零的值?真正的小数值应该不重要。 – 2010-11-18 15:17:08
同样的问题:http://stackoverflow.com/questions/3704570/in-python-small-floats-tending-to-zero – monkut 2012-05-11 04:22:55