我在cvs文件中有一个二维阵列的光谱(石油样品(,我想找到波长为600-1800 cm-1的峰值。我尝试过scipy.signal.find_peaks,但这需要一个1D阵列,而我有一个具有波长和相应峰值的2D阵列。任何帮助都会很感激,因为我是python 的初学者
编辑:我还尝试了以下操作:
来自detecta导入detect_peaks
ind=detect_peaks(df(
其中df是我的数组(有两列(的名称,并弹出一个错误:ValueError:所有输入数组必须具有相同数量的维度,但索引0处的数组具有2个维度,索引1处的数组有1个维度
scipy.signal.find_peaks()
仅采用包含峰值的一维数组。因此,您应该能够在DataFrame中选择具有峰值的列,如下所示:
# note that find_peaks returns an array of peak indices, and a dictionary of properties
ind, properties = scipy.signal.find_peaks(df["name of column with peaks"])
然后,如果您只想要峰值,请使用刚才创建的ind阵列选择行:
peak_df = df[df.index.isin(ind)]