SORU
7 Ocak 2011, Cuma


Bulma Yerel maxima/1D numpy bir dizi Numpy ile minimum

1D numpy bir dizi yerel maksimum/minimum bulabilirsiniz numpy/scipy modülü bir işlevi önerir misiniz? Açıkçası en basit yaklaşım hiç yakın komşuları bakmak, ama numpy dağıtımı bir parçası olduğunu kabul edilen bir çözüm istiyorum.

CEVAP
21 Kasım 2012, ÇARŞAMBA


SciPy >= 0.11

import numpy as np
from scipy.signal import argrelextrema

x = np.random.random(12)

# for local maxima
argrelextrema(x, np.greater)

# for local minima
argrelextrema(x, np.less)

Üretir

>>> x
array([ 0.56660112,  0.76309473,  0.69597908,  0.38260156,  0.24346445,
    0.56021785,  0.24109326,  0.41884061,  0.35461957,  0.54398472,
    0.59572658,  0.92377974])
>>> argrelextrema(x, np.greater)
(array([1, 5, 7]),)
>>> argrelextrema(x, np.less)
(array([4, 6, 8]),)

Not, bu yerel max/min x endeksleri. Değerleri almak için deneyin:

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

scipy.signal argrelmax ve bulma maxima argrelmin sağlar ve sırasıyla minimum.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • booba1234

    booba1234

    22 Temmuz 2006
  • Jaclyn W

    Jaclyn W

    5 Mayıs 2006
  • JeezyVEVO

    JeezyVEVO

    12 Mayıs 2009