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()
。在这种情况下,我不确定如何在没有创建循环或定义新函数的情况下正确使用这两个函数中的任何一个;我认为可能有一种更简单的方法来完成相同的事情。