亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在1D numpy數組中使用Numpy查找局部最大值/最小值

在1D numpy數組中使用Numpy查找局部最大值/最小值

慕絲7291255 2019-08-01 14:24:13
在1D numpy數組中使用Numpy查找局部最大值/最小值你能否建議numpy / scipy的模塊函數可以在1D numpy數組中找到局部最大值/最小值?顯然,最簡單的方法是看看最近的鄰居,但我希望有一個公認的解決方案,這是numpy發行版的一部分。
查看完整描述

3 回答

?
慕尼黑5688855

TA貢獻1848條經驗 獲得超2個贊

如果您要查找1d數組a中小于其鄰居的所有條目,您可以嘗試

numpy.r_[True, a[1:] < a[:-1]] & numpy.r_[a[:-1] < a[1:], True]

您還可以在使用此步驟之前平滑陣列numpy.convolve()。

我認為沒有專門的功能。


查看完整回答
反對 回復 2019-08-01
?
青春有我

TA貢獻1784條經驗 獲得超8個贊

對于沒有太多噪音的曲線,我建議使用以下小代碼片段:


from numpy import *


# example data with some peaks:

x = linspace(0,4,1e3)

data = .2*sin(10*x)+ exp(-abs(2-x)**2)


# that's the line, you need:

a = diff(sign(diff(data))).nonzero()[0] + 1 # local min+max

b = (diff(sign(diff(data))) > 0).nonzero()[0] + 1 # local min

c = (diff(sign(diff(data))) < 0).nonzero()[0] + 1 # local max



# graphical output...

from pylab import *

plot(x,data)

plot(x[b], data[b], "o", label="min")

plot(x[c], data[c], "o", label="max")

legend()

show()

這+1很重要,因為diff減少了原始索引號。


查看完整回答
反對 回復 2019-08-01
  • 3 回答
  • 0 關注
  • 2678 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號