Python - 在获取非常小的值(几百个小数)的日志时避免零分割错误

时间:2016-10-28 12:40:36

标签: python zero divide-by-zero

我正在处理非常小的p值(几百个小数),我试图检测列表中最小的一个。看起来Python检测到它们中的许多都是零,所以当我记录时我得到零分割错误。

为避免这种情况,我写了这段代码:

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,我无法识别最小值。关于最佳方式的任何想法?

1 个答案:

答案 0 :(得分:0)

不要将{0}替换为smallest_val,而是将其替换为smallest_val/2smallest_val和0之间的其他内容,以便您仍然可以识别替换。