我正在处理非常小的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,我无法识别最小值。关于最佳方式的任何想法?
答案 0 :(得分:0)
不要将{0}替换为smallest_val
,而是将其替换为smallest_val/2
或smallest_val
和0之间的其他内容,以便您仍然可以识别替换。