Home
Reading
Searching
Subscribe
Sponsors
Statistics
Posting
Contact
Spam
Lists
Links
About
Hosting
Filtering
Features Download
Marketing
Archives
FAQ
Blog
 
Gmane
From: Friedrich Romstedt <friedrichromstedt <at> gmail.com>
Subject: Re: bincount question
Newsgroups: gmane.comp.python.numeric.general
Date: Saturday 8th January 2011 21:32:48 UTC (over 6 years ago)
2010/12/21 Alan G Isaac :
> ::
>
>     >>> np.bincount([])
>     Traceback (most recent call last):
>       File "", line 1, in 
>     ValueError: The first argument cannot be empty.
>
> Why not?
> (I.e., why isn't an empty array the right answer?)

>From the (i.e. "a", or, even more precise, "my") mathematical pov:

Define the "bincount" sequence, which will mostly consist of trailing
zeros for large indices.  Then, the return value is the smallest
sequence, s.t. there are no non-zero items left outside the return
chunk of the sequence, and of course it must include the zeroth
bincount sequence element.

So, yes, [] would be the correct answer.

>From the algorithmic point of view:

Define the length of the sequence returned by the max() of the array
handed in + 1.  So, since max([]) is undefined, such is bincount in
that case.

I'm a bit in favour of the mathematical approach.  But unfortunately,
I cannot fix it, although I think it will break nothing because
nothing should rely on this corner case yielding an Exception (but I
might be proven wrong, I don't really know).

In any case, it might be worth documenting this, by adding it to the
ValueError section of the "Raises" part
(http://docs.scipy.org/doc/numpy/reference/generated/numpy.bincount.html?highlight=bincount#numpy.bincount).
 This is something I might be able to do.

Friedrich
 
CD: 3ms