-2
Matplotlibを使用してnumpy.ndarray
(長さ1400)をプロットします。私は "ピーク"を検出し、 "ピークではない"とピーク時のy値との間に0.1のような関数を作りたいと思う。ヒストグラムデータを使用する確率密度関数
例チャート:
Matplotlibを使用してnumpy.ndarray
(長さ1400)をプロットします。私は "ピーク"を検出し、 "ピークではない"とピーク時のy値との間に0.1のような関数を作りたいと思う。ヒストグラムデータを使用する確率密度関数
例チャート:
あなたのデータにDetectPeaksを適用します。二次微分を計算し、あなたのmpd、mph設定に関して決定してください。
first_derivative = np.gradient(data)
second_derivative = np.gradient(first_derivative)
ind = detect_peaks(second_derivative, mpd=20,mph=0, show=True)
print(ind)
そして、0または最大値のいずれかを使用して配列を埋める---
arr = []
for i in range(0,len(n_test)):
for j in ind:
if i == j:
arr.append(n_test[i])
arr.append(0)
plt.plot(arr)
最後に、他のピーク検出オプションをチェックアウト - peak detection overview
"ピーク" を定義します。 'y [i]> max(y [i-1]、y [i + 1])'なら 'y [i]'はピークですか? – Eric
@エリックそれらのすべてではありません - それらの短い範囲、より大きなもののみ。 –
私はEricに同意します:まずあなたの問題/質問の明確な定義をします。たとえばpeakは15より大きいすべての場合、Pythonで1つのライナーとして解を書くことができます。あなたが魅力的なピーク検出アルゴリズムを必要とするならば、事態はもっと複雑になる可能性があります。 – Bart