Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk mencari Maxima dan Minima Tempatan dalam Array Numpy 1D Menggunakan SciPy?

Bagaimana untuk mencari Maxima dan Minima Tempatan dalam Array Numpy 1D Menggunakan SciPy?

Linda Hamilton
Linda Hamiltonasal
2024-11-15 09:26:03117semak imbas

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

Mencari Maxima/Minima Setempat dalam Tatasusunan Numpy 1D dengan Numpy

Mengenal pasti maxima dan minima setempat dalam tatasusunan numpy 1D ialah tugas biasa dalam pemprosesan isyarat dan analisis data. Walaupun pendekatan mudah melibatkan membandingkan elemen dengan jiran terdekatnya, penyelesaian yang lebih mantap dicari dalam perpustakaan numpy/scipy.

Penyelesaian Menggunakan argrelextrema SciPy

Dalam SciPy versi 0.11 dan seterusnya, fungsi argrelextrema menyediakan cara yang cekap untuk mencari ekstrem tempatan dalam tatasusunan 1D:

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)

Fungsi ini mengembalikan tupel yang mengandungi indeks unsur yang maxima atau minima setempat:

>>> argrelextrema(x, np.greater)
(array([1, 5, 7]),)
>>> argrelextrema(x, np.less)
(array([4, 6, 8]),)

Untuk mendapatkan nilai sebenar pada ekstrem tempatan ini:

>>> x[argrelextrema(x, np.greater)[0]]

Fungsi Tambahan dalam SciPy

Selain argrelextrema, SciPy menyediakan fungsi khusus untuk mencari sahaja maxima atau minima:

  • argrelmax: Mencari indeks maxima tempatan
  • argrelmin: Mencari indeks minima tempatan

Atas ialah kandungan terperinci Bagaimana untuk mencari Maxima dan Minima Tempatan dalam Array Numpy 1D Menggunakan SciPy?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn