import os
import pyfits as ps
import lomb
import numpy as np
import matplotlib.pyplot as plt
hdulist = ps.open('filename')
tbdata = hdulist[1].data
PDCFlux = tbdata.field(7)
PDCFlux = PDCFlux[~np.isnan(PDCFlux)]
psd,freq = lomb.lomb(Timesec,PDCFlux)
logpsd = np.log10(psd)
logfreq = np.log10(freq)
#want an associated 'slope'.
'''PDC Slope'''
PDCFluxrange = PDCFlux.all[np.log10(4*(10**(-5)))<freq<np.log10(4*(10**(-7)))]
在最后一行中,我尝试创建一个新数组:PDCFluxrange
它由数组的值组成PDCFlux
(freq
频率)在:log10(4*(10**(-5)))
和之间log10(4*(10**(-7))
。
当我在 Pylab 中运行程序时,我收到类似于以下内容的错误消息:Value Error: The truth value of an array with more than one element is ambiguous
. 使用a.any()
或a.all()
。
在这种情况下,我不确定如何在我的代码中正确使用这两个函数中的任何一个而不创建循环或定义新函数;我认为可能有更简单的方法来完成同样的事情。