首頁 >後端開發 >Python教學 >如何在一維 Numpy 數組中找到局部最大值和最小值?

如何在一維 Numpy 數組中找到局部最大值和最小值?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-11-13 17:18:02689瀏覽

How to Find Local Maxima and Minima in a 1D Numpy Array?

利用Numpy 的SciPy 模組定位一維Numpy 數組中的局部最大值和最小值

尋求能夠識別局部的Numpy 或SciPyumpy 或SciPy模組函數對於一維Numpy 數組中的最大值和最小值,我們可以探索Numpy 發行版中所採用的經過驗證的解決方案。

使用SciPy 極值偵測函數的解

對於您的SciPy 的實例安裝版本為0.11 或更高版本時,您可以利用argrelextrema 函數:

import numpy as np
from scipy.signal import argrelextrema

x = np.random.random(12)

# Detect local maxima
maxima_indices = argrelextrema(x, np.greater)

# Detect local minima
minima_indices = argrelextrema(x, np.less)

此腳本產生包含局部最大值或最小值索引的陣列。要檢索對應的值,請利用:

maxima_values = x[maxima_indices[0]]
minima_values = x[minima_indices[0]]

SciPy.Signal 的替代選項

SciPy.signal 也提供用於處理最大值和最小值檢測的專用函數:

  • argrelmax:定位局部最大值
  • argrelmin:定位局部最小值

使用這些方法來特定提取最大值或最小值。

範例輸出

對於範例陣列[0.56660112, 0.76309473, 0.69597908, 0.38260156, 0. 26, 0.4188 4061, 0.35461957, 0.54398472, 0.59572658, 0.92377974],局部最大值的輸出索引最小值為:

  • 最大值:[1, 5, 7]
  • 最小值:[4, 6, 8]

以上是如何在一維 Numpy 數組中找到局部最大值和最小值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn