1 回答

TA貢獻(xiàn)1890條經(jīng)驗(yàn) 獲得超9個(gè)贊
取決于如何定義尖峰,可能會有許多不同的有效答案。
假設(shè)您只想要溫度顯著升高的指數(shù)。一種簡單的方法是只尋找超過某個(gè)閾值的非常大的值跳躍。閾值可以從數(shù)據(jù)的平均差中計(jì)算出來,這應(yīng)該粗略估計(jì)值發(fā)生顯著變化的位置。這是一個(gè)基本的實(shí)現(xiàn):
import numpy as np
# Data
x = np.array([0, 1, 2, 50, 51, 52, 53, 100, 99, 98, 97, 96, 10, 9, 8, 80])
# Data diff
xdiff = x[1:] - x[0:-1]
# Find mean change
xdiff_mean = np.abs(xdiff).mean()
# Identify all indices greater than the mean
spikes = xdiff > abs(xdiff_mean)+1
print(x[1:][spikes]) # prints 50, 100, 80
print(np.where(spikes)[0]+1) # prints 3, 7, 15
您也可以使用異常值拒絕,這比與均值差的基本比較要聰明得多。
添加回答
舉報(bào)