使用Numpy 找出一維Numpy 陣列中的局部最大值/最小值
辨識一維屬numpy 陣列中的局部最大值和最小值是一項常見任務從事訊號處理和資料分析。雖然簡單的方法涉及將元素與其最近的鄰居進行比較,但在 numpy/scipy 庫中尋求更強大的解決方案。
使用 SciPy 的 argrelextrema 的解決方案
在 SciPy 中從版本 0.11 開始,argreextrema 函數提供了一種在 a中尋找局部極值的有效方法一維數組:
import numpy as np from scipy.signal import argrelextrema x = np.random.random(12) # Find indices of local maxima maxima_indices = argrelextrema(x, np.greater) # Find indices of local minima minima_indices = argrelextrema(x, np.less)
函數傳回包含局部最大值或最小值元素索引的元組:
>>> argrelextrema(x, np.greater) (array([1, 5, 7]),) >>> argrelextrema(x, np.less) (array([4, 6, 8]),)
要取得這些局部極值處的實際值:
>>> x[argrelextrema(x, np.greater)[0]]
附加功能SciPy
除了 argrelextrema 之外,SciPy也提供專門的函數來只找出最大值或最小值:
以上是如何使用 SciPy 找出 1D Numpy 陣列中的局部最大值和最小值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!