<pre><code>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)))]
</code></pre>
<p>在最后一行中,我试图创建一个新的数组:<code>PDCFluxrange</code>,它由<code>log10(4*(10**(-5)))</code>和<code>log10(4*(10**(-7))</code>之间的<code>PDCFlux</code>组成。在</p>
<p>当我在Pylab中运行该程序时,我收到一条类似于:<code>Value Error: The truth value of an array with more than one element is ambiguous</code>的错误消息。使用<code>a.any()</code>或{<cd8>}。在</p>
<p>在这种情况下,我不确定如何在代码中正确使用这两个函数中的任何一个,而不创建循环或定义新函数;我认为可能有一个更简单的方法来完成相同的事情。在</p>
<p>我想你想</p>
<pre><code>PDCFluxrange = [x for x in PDCFlux if x>np.log10(4*(10**(-5))) and x<np.log10(4*(10**(-7)))]
</code></pre>
<p>这对你有用吗?我希望我对你的代码理解正确。在</p>