我有一个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个ID,我想最终得到10个最受欢迎的ID。 也就是说,有些ID会多次出现