python scipy 寻找曲线波谷 demo
时间: 2024-07-19 07:01:22 浏览: 212
在Python中,`scipy`库提供了一系列强大的数学函数,包括用于信号处理的工具。如果你想要找到数据中的波谷(也称为局部最小值),可以使用`scipy.signal.argrelextrema`函数结合`minima`参数,这是一个示例:
```python
from scipy.signal import argrelextrema
import numpy as np
# 假设我们有一个简单的模拟数据作为信号
signal_data = np.sin(2 * np.pi * 5 * np.linspace(0, 1, 100)) + 0.1 * np.random.randn(100)
# 定义寻找波谷的条件,这里我们找的是低于前一数值的局部最低点
condition = np.less(signal_data[:-1], signal_data[1:])
# 使用argrelextrema找到波谷的位置
minima_indices = argrelextrema(condition, np.greater) + 1 # 由于condition数组比信号少一个元素,我们需要加上1
# 输出波谷的索引
print("波谷位置:", minima_indices)
# 如果需要,还可以提取信号中的波谷值
minima_values = signal_data[minima_indices]
print("波谷值:", minima_values)
```
在这个例子中,`argrelextrema`函数根据指定的比较函数`np.less`找出所有满足条件的地方,然后`minima_indices`就是那些局部最小点的索引。
阅读全文