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 nonzero 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
