机器学习 获取曲线局部最低点、最高点 pandas
时间: 2023-08-21 07:03:28 浏览: 78
获取曲线的局部最低点和最高点可以通过 Pandas 和 Scipy 库来实现。具体步骤如下:
1. 首先,将曲线数据存储在 Pandas 的 DataFrame 中。
2. 使用 Scipy 库的 signal 模块中的 argrelextrema 函数来获取曲线的局部最低点和最高点的索引。
3. 使用 Pandas 的 iloc 函数来获取局部最低点和最高点的 x 和 y 坐标。
以下是示例代码:
```python
import pandas as pd
from scipy.signal import argrelextrema
# 创建示例数据
data = {'x': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
'y': [2, 4, 5, 7, 6, 8, 9, 5, 3, 1]}
df = pd.DataFrame(data)
# 获取局部最低点和最高点的索引
min_idx = argrelextrema(df['y'].values, comparator=lambda x, y: x < y, order=3)[0]
max_idx = argrelextrema(df['y'].values, comparator=lambda x, y: x > y, order=3)[0]
# 获取局部最低点和最高点的 x 和 y 坐标
min_points = df.iloc[min_idx]
max_points = df.iloc[max_idx]
print('局部最低点:', min_points)
print('局部最高点:', max_points)
```
其中,argrelextrema 函数的 comparator 参数指定了比较函数,order 参数指定了比较的窗口大小。在本示例中,比较函数为 lambda x, y: x < y,表示找到 y 值比相邻 3 个点都小的点作为局部最低点;比较函数为 lambda x, y: x > y,表示找到 y 值比相邻 3 个点都大的点作为局部最高点。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)