2012-11-20 63 views
2

我有一個很大的數字列表,我想從這些數據創建一個分佈,繪製它,然後找到列表中每個數字的p值分配。python中的分佈和p值

是否有可能在python中做到這一點?我無法在matplotlib文檔中找到它。我應該使用別的東西嗎?

回答

0

您可以使用numpy模塊中的搜索排序函數,它將爲您提供有序數組中的一組值的順序。您可以僅僅通過它來重新歸一化的原始陣列的尺寸,然後轉變爲p值:

data = sorted(rand(10)) 
new_data = rand(5) 
pvals = searchsorted(data,new_data)*1./len(data) 
print pvals 
#array([ 0. , 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9]) 

唉,其實,如果你想在原來的號碼的p值,你不需要任何特殊功能,在所有:pvalues只是排序數據集中的順序除以它的長度。 如果您需要關於原始值的新值的pvalues,您可以使用我給你的片段

3

我建議看看stats模塊scipy;它爲這樣的事情提供了許多統計功能。對於繪圖而言,我仍然會使用matplotlib