[Numpy-discussion] A faster median (Wirth's method)

Dag Sverre Seljebotn dagss@student.matnat.uio...
Wed Sep 2 07:53:20 CDT 2009


Sturla Molden wrote:
> Dag Sverre Seljebotn skrev:
>   
>> Nitpick: This will fail on large arrays. I guess numpy.npy_intp is the 
>> right type to use in this case?
>>   
>>     
> By the way, here is a more polished version, does it look ok?
>
> http://projects.scipy.org/numpy/attachment/ticket/1213/generate_qselect.py
> http://projects.scipy.org/numpy/attachment/ticket/1213/quickselect.pyx
>   
I didn't look at the algorithm, but the types look OK (except for the 
gil as you say). Comments:

a) Is the cast to numpy.npy_intp really needed? I'm pretty sure shape is 
defined as numpy.npy_intp*.
b) If you want higher performance with contiguous arrays (which occur a 
lot as inplace=False is default I guess) you can do

  np.ndarray[T, ndim=1, mode="c"]

to tell the compiler the array is contiguous. That doubles the number of 
function instances though...


> Cython needs something like Java's generics by the way :-)
>   
Yes, we all long for that. It will come as soon as somebody volunteers I 
suppose -- it shouldn't be all that difficult, but I don't think any of 
the existing devs will be up for it any time soon.

Dag Sverre


More information about the NumPy-Discussion mailing list