Скользящее окно с приоритетной выборкой

У меня есть список Python, и мне нужно создать из этого скользящее окно с приоритетной выборкой. В частности, список (созданный из файла json) выглядит следующим образом:

print jfile ['id'] =>

445860938797707000
445860940027006000
445860940144463000
445860940907819000
445860941289492000
445860942677803000
445860943072067000
445860944347136000
445860944791740000
445860944778768000

код, который я использую для скользящего окна:

numData=100

stream1=np.random.random(numData)

def prioritySampling (stream, sampleSize):

sample=np.zeros(sampleSize)
tags=np.zeros(sampleSize)

i=0
j=0
while i<len(stream):
    if i<sampleSize:
        sample[i] = stream[i]
        tags[i] = np.random.random()
    else:
        newTag = np.random.random()
        maxTag = np.max(tags)
        idxMaxTag = np.argmax(tags)

        if maxTag > newTag:
            sample[idxMaxTag]=stream[i]
            tags[idxMaxTag]=newTag
            j=j+1
    i=i+1
print 'updates priority=',j    
return sample


sampleP1 = prioritySampling (stream1, 10)

p1 = np.array (sampleP1)

Это отлично работает в случайных числах. Что делать, если мне нужно использовать список, как я показал раньше? Имейте в виду, что в списке изначально содержится около 35 000 идентификаторов, и я хочу получить в итоге 10 самых популярных идентификаторов. То есть, некоторые идентификаторы представлены много раз

0 ответов

Другие вопросы по тегам