首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Python -避免在取非常小的值(数百个小数)的对数时出现零除错误

Python -避免在取非常小的值(数百个小数)的对数时出现零除错误
EN

Stack Overflow用户
提问于 2016-10-28 20:40:36
回答 1查看 640关注 0票数 0

我正在处理非常小的p值(几百个小数),并且我正在尝试检测列表中最小的一个。似乎Python会检测到其中许多为零,所以当我登录时,我会得到一个零除错误。

为了避免这种情况,我编写了以下代码:

代码语言:javascript
复制
smallest_val = min(np.array(p_value)[np.array(p_value) > 0])
for i in range(len(p_value)):
  if p_value[i] == 0: 
    p_value[i] = smallest_val

p_value_log = []
for i in p_value:
  b = log(i)
  p_value_log.append(b)

当然,这并不能解决我的问题,因为几个小的p值等于smallest_val,并且我不能识别最小的。你知道最好的方法吗?

EN

回答 1

Stack Overflow用户

发布于 2016-10-28 20:46:05

不是用smallest_val代替0,而是用smallest_val/2smallest_val和0之间的其他东西代替,这样你仍然可以识别出你的替代者。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40305343

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档