擅长:python、mysql、java
<p>我对你的代码做了一些修改:</p>
<ul>
<li><p>使用numpy ot创建<code>wave_flux</code>作为<code>ndarray</code>,使用<code>np.hstack()</code>、<code>np.repeat()</code>和{<cd5>}</p></li>
<li><p>使用花式索引获取与搜索匹配的值</p></li>
</ul>
<p>产生的代码是:</p>
<pre><code>#modules
import scipy
import numpy as np
import pyfits as pf
#Target Global Vaiables
hdulist_tg = pf.open('cutmask1-2.0001.fits')
hdr_tg = hdulist_tg[0].header
flux_tg = hdulist_tg[0].data
crval_tg = hdr_tg['CRVAL1'] #Starting wavelength
cdel_tg = hdr_tg['CDELT1'] #Wavelength axis width
wave_tg = crval_tg + np.arange(3183)*cdel_tg #Create an x-axis
wavelist = [6207,6315,6369,6438,6490,6565,6588]
wave_flux = np.vstack(( np.repeat(wave_tg, len(flux_tg)),
np.tile(flux_tg, len(wave_tg)) )).transpose()
wave_ref = wavelist[0]
diff = 10
print wave_flux[ np.abs(wave_flux[:,0]-wave_ref) < diff ]
</code></pre>
<p>它将返回<code>wave_flux</code>的子组,其波值在<code>0</code>列中,通量值在<code>1</code>列中:</p>
^{pr2}$