2012-04-01 11 views
0

2つのヒストグラム(freq dist)があり、2つのヒストグラムのそれぞれの対応するビンの頻度の平均を取って、平均頻度を表示する1つのヒストグラムを取得します。Pythonで2つのヒストグラムの平均をとります

これをピラブでもできますか?

a=[] 
sites = [23,45,32,56,76,87,45,21,34,23,78,90,23,45,21,32,34,54,67,54,33,12,34] 
import random 
j=1 
for i in range(1,len(sites)): 
    r = random.choice([0,1]) 
    if r == 1: 
     a.append(sites[i] - sites[i-j]) 
     j=1 
    else: 
     j+=1 
import pylab 
pylab.hist(a, bins=10) 
pylab.title("hist") 
pylab.xlabel("length") 
pylab.ylabel("Count") 
pylab.show() 

スニペットコードは、いくつかのヒストグラムを得るために、異なる「サイト」データで数回実行されます。私はこれらのヒストグラムを1つに「平均」したい。

+0

はあなたでした、あなたのヒストグラムが同じ周波数ビンを持っていると仮定すると、そうヒストグラムは、リストのような場合は、この操作を行うに

ヒストグラムの作成方法を示すコードスニペットを提供してください。さらに、再現性のある小さな例ですか? –

答えて

1

ヒストグラムの総数が同じでないと、これは不合理です。そうでない場合は、加重平均を取る必要があります。

[(x1+x2)/2 for x1,x2 in zip(h1,h2)] 

ヒストグラムは辞書に似ている場合:

def mergeBins(bin1, bin2): 
    label1,value1 = bin1 
    label2,value2 = bin2 
    assert label1==label2 
    return label1, (value1+value2)/2 

dict(mergeBins() in bin1,bin2 zip(h1.items(), h2.items())) 
関連する問題