我正在使用非常小的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值等于smallst_val,我不能识别最小的。有什么最好的办法吗?
与其将0替换为smallest_val
,不如将它们替换为smallest_val/2
或smallest_val
和0之间的其他内容,以便您仍然可以识别您的替换