获取曲线局部最低点、最高点 pandas
时间: 2023-08-21 22:03:28 浏览: 227
你好!要获取曲线的局部最低点和最高点,可以使用 Pandas 库中的 rolling 方法和 argmax/argmin 方法。以下是一个示例代码:
```python
import pandas as pd
# 创建示例数据,这里是一个简单的正弦曲线
data = pd.DataFrame({'x': range(100), 'y': [np.sin(x/10) for x in range(100)]})
# 定义滑动窗口大小
window_size = 5
# 使用 rolling 方法计算每个窗口内的最大值和最小值
data['rolling_max'] = data['y'].rolling(window_size).max()
data['rolling_min'] = data['y'].rolling(window_size).min()
# 使用 argmax 和 argmin 方法计算最大值和最小值所在的位置
max_idx = data['rolling_max'].argmax()
min_idx = data['rolling_min'].argmin()
# 输出结果
print('最高点坐标:({},{})'.format(data.loc[max_idx, 'x'], data.loc[max_idx, 'y']))
print('最低点坐标:({},{})'.format(data.loc[min_idx, 'x'], data.loc[min_idx, 'y']))
```
这段代码首先创建了一个简单的正弦曲线作为示例数据。然后定义了一个滑动窗口大小,使用 rolling 方法计算每个窗口内的最大值和最小值,并使用 argmax 和 argmin 方法计算最大值和最小值所在的位置。最后输出结果,即局部最高点和最低点的坐标。
注意,这里的滑动窗口大小需要根据实际数据进行调整,以确保能够捕捉到局部极值点。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.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)