如何修复日志中的负值?

时间:2018-12-10 09:51:12

标签: python numpy

因此,我正在从txt文件中获取数据,我想在整个集合中获取特定数据。在代码中,我试图通过指定用于那些索引的索引和频率来抓住它。但是我的日志显示一个负值,我不知道如何解决。代码在下面,谢谢!

 indexes = [9,10,11,12,13]
 frequenciesmh = [151,610,1400,4860,18000]
 frequenciesgh = [i*10**-3 for i in frequenciesmh]
 bigclusterallfluxes = bigcluster[indexes]
 bigclusterlogflux151mhandredshift = [i[indexes] for i in bigcluster]

 shiftedlogflux151mh = 
 [np.interp(np.log10((151*10**-3)*i[0]),np.log10(frequenciesgh),i[1:])
                       for i in bigclusterlogflux151mhandredshift]
  shiftflux151mh = [10**i for i in shiftedlogflux151mh]

   bigclusterflux151mhandredshift = 
   np.array(list(zip(shiftflux151mh,np.transpose(bigcluster)[9])))

2 个答案:

答案 0 :(得分:1)

我不知道您要尝试完全解决什么问题,但是我绝对不会更改负值,因为它们会始终改变正值的功效(如果您了解一些数学知识,您会明白这意味着1/16 ==> 16以及16 ==> 16)。

在使用频率时您可能想要的是什么(如果将它们标准化,则总是在0到1之间,用它们除以它们的总和,因此对数总是会更小或等于0)是使它们全都为正并具有-log 10的概率,这是一个很常见的值,然后1 == 1 / 10、2 == 1/100,依此类推(在遗传学中至少被称为phred值)。

总结总是调用减号日志,而不是日志

-math.log(0.0001) 

答案 1 :(得分:0)

您正在寻找abs()函数。