argrelextrema()如何使用
时间: 2024-05-14 20:16:28 浏览: 396
argrelextrema()是SciPy库中的一个函数,用于寻找一维数组中的极值点。它的语法如下:
scipy.signal.argrelextrema(data, comparator=None, axis=0, order=None, mode='clip')
其中,参数含义如下:
data
:一维数组,表示要寻找极值点的数据。comparator
:可选参数,表示要使用的比较器。默认为None,表示使用numpy.greater()和numpy.less()。axis
:可选参数,表示在哪个轴上寻找极值点。默认为0,表示在第一个轴上寻找。order
:可选参数,表示在多少个点范围内寻找极值点。默认为None,表示在整个数组中寻找。mode
:可选参数,表示在边缘处的处理方式。默认为'clip',表示将边缘点视为极值点。
函数返回一个包含极值点索引的元组。例如,对于下面的数组:
import numpy as np
data = np.array([1, 2, 3, 2, 1])
调用argrelextrema()函数可以得到极值点的索引:
from scipy.signal import argrelextrema
max_idx = argrelextrema(data, np.greater)
min_idx = argrelextrema(data, np.less)
print("max_idx:", max_idx) # 输出:max_idx: (array([2]),)
print("min_idx:", min_idx) # 输出:min_idx: (array([0, 4]),)
上面的代码中,np.greater
表示使用大于号比较器来寻找极大值点,np.less
表示使用小于号比较器来寻找极小值点。函数返回的元组中,第一个元素是一个一维数组,表示极值点的索引。在这个例子中,max_idx
表示数据中的极大值点的索引为2,min_idx
表示数据中的极小值点的索引为0和4。