numpy diziler olarak verilmiştir yerel Maksimum ve Minimum şu şekildedir: Ben yerel asgari ve azami dizinini bulma amBul bütün x ve y değerleri ben iki diziyi <code>x</code> ve <code>y</code> sahip
x = np.array([6, 3, 5, 2, 1, 4, 9, 7, 8])
y = np.array([2, 1, 3, 5, 3, 9, 8, 10, 7])
:
sortId = np.argsort(x)
x = x[sortId]
y = y[sortId]
minm = np.array([])
maxm = np.array([])
while i < y.size-1:
while(y[i+1] >= y[i]):
i = i + 1
maxm = np.insert(maxm, 0, i)
i++
while(y[i+1] <= y[i]):
i = i + 1
minm = np.insert(minm, 0, i)
i++
Bu koddaki sorun nedir? Yanıt, minima = [2, 5, 7]
ve maxima = [1, 3, 6]
dizinindeki dizin olmalıdır.
whate ile yapıyorsunuz sortId = np.argsort (x); x = x [sortId] '? – fferri
Bir çift 'while' döngüsüyle bu çözüm çok yavaş olacaktır (ve np.insert'den bile bahsetmiyorum bile) 'minm' /' nmax' dizilerini her iterasyonda yeniden tahsis eder. Bunu düzgün bir şekilde yapmak için https://stackoverflow.com/questions/4624970/finding-local-maxima-minima-with-numpy-in-a-1d-numpy-rayrayim sayfasına bakın. – rth
@mescalinum: x değerleri sıralıyorum ve karşılık gelen indeksler sortId içinde saklanacaktır. Böylece o değerleri y sırayla düzenleyebilirim. – prtkp