2016-02-27 61 views
0

給定一個概率分佈函數(至少在兩個數組的形式y和P(Y)),我知道如何找到通過使用下面的行其索引的最大概率:如何找到概率分佈函數圖的最大值的位置?

i_max=np.argmax(P) 
max=P[i_max] 

然而,我還需要知道這個最大值沿y軸的位置。我無法在scipy中找到任何聲明來做到這一點。從理論上講,這很容易做到。但是,我不知道如何在python3中實現它。任何幫助,將不勝感激。

+0

對不起,你失去了。爲什麼不是'np.max(P)'? –

+0

其實這也會起作用。但是,最初我認爲使索引對應於最大值更有趣,並且可能在使用它來定位最大值的位置時更有幫助。 – Benjy

+0

'y [i_max]'你想要什麼? –

回答

0

我以前有類似的問題,我不知道argmax方法。 我做的是 index = np.where(np.max(P)== P) 它可以幫助你

+0

感謝親愛的Stefano,當我把P(這是一個離散值的數組p(y))時,它不起作用。但是,當我用pdf的函數形式(在代碼前面定義)替換P時,它實際上給了你一個由兩個元素組成的一維數組,它們的下/上值恰好對應於剛好在位置之前和之後的索引最大。理論上,最大值位於y = 10,我得到[9.98998999 10.01001001],考慮到pdf的離散性質,這是很好的。 – Benjy

+0

老實說,我幾乎不能理解你的問題,我向你提供另一個問題,我可以幫你 x = np.arange(-3,3,0.01) y = np.sin(np.pi * x) plt .plot(X,Y) 一個= plt.ginput(1) 然後點擊圖你喜歡的東西 A = [(-0.375,-0.7792887029288702)] 是x和y分量你用鼠標選擇的點。以發現最接近x分量到-0.375類型 np.where(X>一個[0] [0])[0] [0] 其中 np.where(X>一個[0] [0 ])[0]是所有索引的數組,其值大於-0.375和 np.where(x> a [0] [0])[0] [0] 是這個的第一個元素排列 –