[Numpy-discussion] Ticket #794 and can o' worms.
Charles R Harris
charlesr.harris@gmail....
Sun Jul 20 20:32:10 CDT 2008
On Sun, Jul 20, 2008 at 4:47 PM, Robert Kern <robert.kern@gmail.com> wrote:
> On Sun, Jul 20, 2008 at 17:42, Charles R Harris
> <charlesr.harris@gmail.com> wrote:
> > Hi All,
> >
> > I "fixed" ticket #754, but it leads to a ton of problems. The original
> > discussion is here. The problems that arise come from conversion to
> > different types.
> >
> > In [26]: a
> > Out[26]: array([ Inf, -Inf, NaN, 0., 3., -3.])
> >
> > In [27]: sign(a).astype(int)
> > Out[27]:
> > array([ 1, -1, -2147483648, 0, 1,
> > -1])
> >
> > In [28]: sign(a).astype(bool)
> > Out[28]: array([ True, True, True, False, True, True], dtype=bool)
> >
> > In [29]: sign(a)
> > Out[29]: array([ 1., -1., NaN, 0., 1., -1.])
> >
> > In [30]: bool(NaN)
> > Out[30]: True
> >
> > So there are problems with at minimum the following.
> >
> > 1) The way NaN is converted to bool. I think it should be False.
>
> It's not really our choice. That's Python's bool(). For the things
> that are our choice (e.g. array([nan]).astype(bool)) I think we should
> stay consistent with Python.
>
> > 2) The way NaN is converted to int types. I think it should be 0.
>
> I agree. That's what int(nan) gives:
>
> >>> int(nan)
> 0L
>
So we should shoot for:
nan -> bool : True
nan -> integer kind : 0
nan -> complex : Nan+0j
nan -> string kind : ?, currently it is any one of 'n', 'na', 'nan',
depending on string length.
nan -> object: float object nan.
Chuck
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://projects.scipy.org/pipermail/numpy-discussion/attachments/20080720/b39c9a1a/attachment.html
More information about the Numpy-discussion
mailing list