[Numpy-discussion] argsort speed
josef.pktd at gmail.com
josef.pktd at gmail.com
Sun Feb 16 18:15:45 EST 2014
On Sun, Feb 16, 2014 at 5:50 PM, Eelco Hoogendoorn
<hoogendoorn.eelco at gmail.com> wrote:
>
> My guess;
>
> First of all, you are actually manipulating twice as much data as opposed to
> an inplace sort.
>
> Moreover, an inplace sort gains locality as it is being sorted, whereas the
> argsort is continuously making completely random memory accesses.
>
>
> -----Original Message-----
> From: josef.pktd at gmail.com
> Sent: Sunday, February 16, 2014 11:43 PM
> To: Discussion of Numerical Python
> Subject: [Numpy-discussion] argsort speed
>
> currently using numpy 1.6.1
>
> What's the fastest argsort for a 1d array with around 28 Million
> elements, roughly uniformly distributed, random order?
>
> Is there a reason that np.argsort is almost 3 times slower than np.sort?
>
> I'm doing semi-systematic timing for a stats(models) algorithm.
I was using np.sort, inplace sort is only a little bit faster
It looks like sorting first, and then argsorting is faster than argsort alon
pvals.sort()
sortind = np.argsort(pvals)
replacing the inplace sort in the above reduces speed only a bit
--------------
import time
use_master = True
if use_master:
import sys
sys.path.insert(0,
r"E:\Josef\!reps\numpy\dist\Programs\Python27\Lib\site-packages")
import numpy as np
print "np.__version__ =", np.__version__
n = 5300
pvals = np.random.rand(n**2)
t0 = time.time()
p = np.sort(pvals)
t1 = time.time()
sortind = np.argsort(pvals)
t2 = time.time()
pvals.sort()
sortind = np.argsort(pvals)
t3 = time.time()
print t1 - t0, t2 - t1, t3 - t2
print (t2 - t1) * 1. / (t1 - t0), (t3 - t2) * 1. / (t1 - t0)
------------
np.__version__ = 1.9.0.dev-2868dc4
3.91900014877 9.5569999218 4.92900013924
2.43863219163 1.2577187936
Josef
>
> Josef
> _______________________________________________
> NumPy-Discussion mailing list
> NumPy-Discussion at scipy.org
> http://mail.scipy.org/mailman/listinfo/numpy-discussion
>
> _______________________________________________
> NumPy-Discussion mailing list
> NumPy-Discussion at scipy.org
> http://mail.scipy.org/mailman/listinfo/numpy-discussion
More information about the NumPy-Discussion
mailing list