python下采样_python – numpy下采样

据我所知,比其他人快.但可能会占用更多内存.

import random

from collections import Counter

def sample2(A,N):

distribution = [i for i, j in enumerate(A) for _ in xrange(j)]

sample = Counter(random.sample(distribution, N))

return [sample[i] for i in xrange(len(A))]

In [52]: A = np.random.randint(0, 100, 500)

In [53]: %timeit sample(A, 100) #Original

100 loops, best of 3: 2.71 ms per loop

In [54]: %timeit sample2(A, 100) #my function

1000 loops, best of 3: 914 µs per loop

In [55]: %timeit sample3(A, 100) #sftd function

100 loops, best of 3: 8.33 ms per loop


版权声明:本文为weixin_39851279原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。