принимая среднее значение двух гистограмм в питоне - PullRequest
0 голосов
/ 02 апреля 2012

У меня есть две гистограммы (freq dist), и я хочу взять среднее значение частот в каждом соответствующем бине двух гистограмм и получить одну гистограмму, которая отображает средние частоты.

Можно ли сделать это с помощьюpylab?

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 Ответ

1 голос
/ 02 апреля 2012

Это неразумно, если обе гистограммы не имеют одинакового общего количества элементов, в противном случае вы должны взять средневзвешенное значение.

Чтобы сделать это, предполагая, что ваши гистограммы имеют одинаковые интервалы частоты, сделайте это, если гистограммыв виде списка:

[(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()))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...