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)))]
最後の行で、新しい array: を作成しようとしました。これは、(frequency) between:と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()
ます。
その場合、ループを作成したり、新しい関数を定義したりせずに、コードでこれら 2 つの関数のいずれかを適切に使用する方法がわかりません。同じことを達成するためのより簡単な方法があるかもしれないと思います。