|
在Python的科学计算库中,特别是在scipy.signal模块中,find_peaks函数是一个非常有用的工具,用于在一维数组中查找局部峰值(即“峰”或“峰顶”)。不过,需要注意的是,由于库的更新和版本差异,find_peaks函数的参数可能会有所不同。下面我将基于较新版本的scipy库(如1.4.0及以上版本)来讲解find_peaks函数的主要参数及其作用。主要参数height(可选,浮点数或包含两个浮点数的元组):用于设置峰值的最小高度。如果是一个浮点数,则只考虑高于此高度的峰值。如果是一个元组(min,max),则只考虑高度在min和max之间的峰值(不包括max)。threshold(可选,浮点数):用于设置峰值与两侧相邻点之间的高度差阈值。峰值两侧的点必须低于峰值高度减去这个阈值。distance(可选,整数):设置两个相邻峰值之间的最小水平距离(即索引的差)。这有助于防止过近的峰值被同时选中。prominence(可选,浮点数):设置峰值的突出度阈值。突出度是峰值与严格较低(不包括距离小于distance的点)的局部最小值之间的垂直距离。width(可选,整数或包含两个整数的元组):设置峰值的宽度要求。如果是一个整数,则峰值周围至少要有这么多(不包括峰值本身)的连续点。如果是一个元组(min,max),则峰值周围连续点的数量必须在这个范围内。wlen(可选,整数):用于计算峰值的突出度时考虑的数据点的窗口长度。这通常与突出度计算一起使用。rel_height(可选,浮点数,范围在0到1之间):设置相对高度阈值。与height不同,这个阈值是相对于数据中的最大值的。例如,如果rel_height为0.5,则只会选择高度至少为数据最大值一半的峰值。plateau_size(可选,整数):用于标识平顶(plateau)的参数。如果一个峰值及其邻近点的高度差小于threshold,并且这些点的数量大于plateau_size,则这些点被视为一个平顶,并只报告其中一个点作为峰值。返回值find_peaks函数返回一个包含两个元素的元组:peaks(整数数组):峰值在输入数组中的索引。properties(字典):包含有关每个峰值的其他信息的字典,如“peak_heights”(峰值的高度)和“prominences”(峰值的突出度)等。示例fromscipy.signalimportfind_peaksimportnumpyasnpx=np.array([0,1,3,7,4,2,5,2,6,1,0,3])peaks,_=find_peaks(x,height=3)print(peaks)#输出:[237]在这个示例中,我们查找数组x中高度至少为3的峰值,并打印出它们的索引。
|
|