Is this a fair test? I expected shuffle to be much faster (no array creation). Alan Isaac
import timeit
setup = """ ... import numpy as np ... prng = np.random.RandomState() ... N = 10**5 ... indexes = np.arange(N) ... """
print timeit.timeit('prng.shuffle(indexes)',setup, number=100) 5.69172311006 print timeit.timeit('indexes = prng.random_sample(N).argsort()',setup, number=100) 1.54648202495
On Tue, Jan 26, 2010 at 2:00 PM, Alan G Isaac <aisaac@american.edu> wrote:
Is this a fair test? I expected shuffle to be much faster (no array creation). Alan Isaac
import timeit
setup = """ ... import numpy as np ... prng = np.random.RandomState() ... N = 10**5 ... indexes = np.arange(N) ... """
print timeit.timeit('prng.shuffle(indexes)',setup, number=100) 5.69172311006 print timeit.timeit('indexes = prng.random_sample(N).argsort()',setup, number=100) 1.54648202495
NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion
maybe because shuffle works with python objects and random_sample with floats
a=['a','bb','cc','c','a'];np.random.shuffle(a);a ['c', 'a', 'bb', 'a', 'cc']
np.random.random_sample(5) array([ 0.02791159, 0.8451104 , 0.51629232, 0.15428393, 0.39491844])
Josef
On 1/26/2010 2:00 PM, Alan G Isaac wrote:
Is this a fair test? I expected shuffle to be much faster (no array creation). Alan Isaac
import timeit
setup = """ ... import numpy as np ... prng = np.random.RandomState() ... N = 10**5 ... indexes = np.arange(N) ... """
print timeit.timeit('prng.shuffle(indexes)',setup, number=100) 5.69172311006 print timeit.timeit('indexes = prng.random_sample(N).argsort()',setup, number=100) 1.54648202495
I suppose that is not fair. But how about this?
print timeit.timeit('indexes[prng.random_sample(N).argsort()]=indexes',setup, number=100) 1.76073257914
Alan Isaac
participants (2)
-
Alan G Isaac -
josef.pktd@gmail.com