[Numpy-discussion] help! type 'float64scalar' is not type 'float'
Sebastian Haase
haase at msg.ucsf.edu
Thu Aug 3 15:42:30 CDT 2006
On Thursday 03 August 2006 13:19, Travis Oliphant wrote:
> Sebastian Haase wrote:
> >On Wednesday 02 August 2006 22:43, Travis Oliphant wrote:
> >>Sebastian Haase wrote:
> >>>Thanks,
> >>>I just found
> >>>numpy.isscalar() and numpy.issctype() ?
> >>>These sound like they would do what I need - what is the difference
> >>>between the two ?
> >>
> >>Oh, yeah.
> >>
> >>numpy.issctype works with type objects
> >>numpy.isscalar works with instances
> >>
> >>Neither of them distinguish between scalars and "numbers."
> >>
> >>If you get errors with isscalar it would be nice to know what they are.
> >
> >I'm still trying to reproduce the exception, but here is a first
> > comparison that - honestly - does not make much sense to me:
> >(type vs. instance seems to get mostly the same results and why is there
> > a difference with a string ('12') )
>
> These routines are a little buggy. I've cleaned them up in SVN to
> reflect what they should do. When the dtype object came into
> existence a lot of what the scalar types where being used for was no
> longer needed. Some of these functions weren't updated to deal with
> the dtype objects correctly either.
>
> This is what you get now:
> >>> import numpy as N
> >>> N.isscalar(12)
>
> True
>
> >>> N.issctype(12)
>
> False
>
> >>> N.isscalar('12')
>
> True
>
> >>> N.issctype('12')
>
> False
>
> >>> N.isscalar(N.array([1]))
>
> False
>
> >>> N.issctype(N.array([1]))
>
> False
>
> >>> N.isscalar(N.array([1]).dtype)
>
> False
>
> >>> N.issctype(N.array([1]).dtype)
>
> True
>
> >>> N.isscalar(N.array([1])[0].dtype)
>
> False
>
> >>> N.issctype(N.array([1])[0].dtype)
>
> True
>
> >>> N.isscalar(N.array([1])[0])
>
> True
>
> >>> N.issctype(N.array([1])[0])
>
> False
>
>
> -Travis
Great!
Just wanted to point out that '12' is a scalar -
I suppose that's what it is.
(To determine if something is a number it seems
best to implement a try: ... except: ... something like float(x) - as Chris
has suggested )
-S.
More information about the Numpy-discussion
mailing list