Rumah > pembangunan bahagian belakang > Tutorial Python > 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
Lepaskan: 2024-11-15 09:26:03
asal
181 orang telah melayarinya

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)
Salin selepas log masuk

Fungsi mengembalikan tupel yang mengandungi indeks unsur yang maksima atau minima setempat:

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

Untuk mendapatkan nilai sebenar pada ekstrem tempatan ini:

>>> x[argrelextrema(x, np.greater)[0]]
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan