【发布时间】:2019-08-21 05:47:31
【问题描述】:
我试图在我的波浪中找到峰值,但我捕捉到了较小的峰值,而我只需要大的。
我尝试了一些代码来找到峰值,但不是那么准确。
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
# Generate a noisy AR(1) sample
#np.random.seed(1)
rs = np.linspace(1259,1650,4768)
xs = [0]
af = pd.read_csv("/home/pi/Downloads/newdata2.csv")
sr = list(af.hex)
for r in sr:
xs.append(r)
df = pd.DataFrame(xs, columns=['data'])
# Find local peaks
df['min'] = df.data[(df.data.shift(10) > df.data) &
(df.data.shift(-10) > df.data)]
df['max'] = df.data[(df.data.shift(1) < df.data) &
(df.data.shift(-1) < df.data)]
# Plot results
#plt.scatter(df.index, df['min'], c='r') # this is valley
plt.scatter(df.index, df['max'], c='g')
df.data.plot()
plt.savefig('graph.png')
plt.show()
我只想找到大峰。
【问题讨论】:
-
请提供您的数据样本 (minimal reproducible example)。
-
我的数据是频率,并为一列中的 4768 个值提供动力
-
你也可以在正弦波上给我答案
标签: python python-3.x matplotlib