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

  • CZTUTORIALS

    CZTUTORIALS

    28 Ocak 2011
  • iMasterful

    iMasterful

    11 EYLÜL 2009
  • KSI

    KSI

    25 Temmuz 2009