---------- Forwarded message ----------
From: Ralf Gommers <ralf.gommers(a)googlemail.com>
Date: Thu, Mar 31, 2011 at 7:31 PM
Subject: Re: [Numpy-discussion] np.histogramdd of empty data
To: Nils Becker <n.becker(a)amolf.nl>
On Thu, Mar 31, 2011 at 12:33 PM, Nils Becker <n.becker(a)amolf.nl> wrote:
> Hi Ralf,
>
> I cloned numpy/master and played around a little.
>
> when giving the bins explicitely, now histogram2d and histogramdd work
> as expected in all tests i tried.
>
>
> However, some of the cases with missing bin specification appear
> somewhat inconsistent.
>
> The first question is if creating arbitrary bins for empty data and
> empty bin specification is better than raising an Exception:
>
> Specifically:
Bins of size 0 should give a meaningful error, I was just fixing that
as part of #1788 in
https://github.com/rgommers/numpy/tree/ticket-1788-histogramdd
> numpy.histogram2d([],[],bins=[0,0])
>> (array([ 0., 0.]), array([ 0.]), array([ 0.]))
Now gives:
ValueError: Element at index 0 in `bins` should be a positive integer.
> numpy.histogram([],bins=0)
>> ValueError: zero-size array to minimum.reduce without identity
Now gives:
ValueError: `bins` should be a positive integer.
> so 1-d and 2-d behave not quite the same.
>
> also, these work (although with arbitrary bin edges):
>
> numpy.histogram2d([],[],bins=[1,1])
>> (array([ 0., 0.]), array([ 0., 1.]), array([ 0., 1.]))
>
> numpy.histogram2d([],[],bins=[0,1])
>> (array([ 0., 0.]), array([ 0.]), array([ 0., 1.]))
>
> while this raises an error:
>
> numpy.histogram([],bins=1)
>> ValueError: zero-size array to minimum.reduce without identity
Now gives:
(array([0]), array([ 0., 1.]))
> another thing with non-empty data:
>
> numpy.histogram([1],bins=1)
>> (array([1]), array([ 0.5, 1.5]))
That is the correct answer.
> numpy.histogram([1],bins=0)
>> (array([], dtype=int64), array([ 0.5]))
Now gives:
ValueError: `bins` should be a positive integer.
> while
>
> numpy.histogram2d([1],[1],bins=A)
>> ValueError: zero-size array to minimum.reduce without identity
>
> (here A==[0,0] or A==[0,1] but not A==[1,1] which gives a result)
Same sensible errors now, telling you bins elements shouldn't be 0.
Cheers,
Ralf
Visiting http://docs.scipy.org/doc/numpy/reference/, as search for
as_strided
or
stride_tricks
shows nothing (useful).
For that matter, I don't see a reference to numpy.lib.