[Numpy-discussion] numpy.int32 is not subclass of int, but numpy.int64 is
shish at keba.be
Tue Nov 15 10:01:33 EST 2011
2011/11/15 MACKEITH Andrew <Andrew.MACKEITH at 3ds.com>
> *From:* numpy-discussion-bounces at scipy.org [mailto:
> numpy-discussion-bounces at scipy.org] *On Behalf Of *Olivier Delalleau
> *Sent:* Tuesday, November 15, 2011 7:03 AM
> *To:* Discussion of Numerical Python
> *Subject:* Re: [Numpy-discussion] numpy.int32 is not subclass of int, but
> numpy.int64 is
> 2011/11/14 Robert Kern <robert.kern at gmail.com>
> On Mon, Nov 14, 2011 at 20:18, MACKEITH Andrew <Andrew.MACKEITH at 3ds.com>
> > Could someone explain this?
> > An instance of numpy.int32 is not an instance of int or numpy.int.
> > An instance of numpy.int64 is an instance of int and numpy.int.
> > I don't know if it is a bug in my linux build.
> >>>> import sys
> >>>> sys.maxint
> > 9223372036854775807
> >>>> import platform
> >>>> print platform.platform()
> > Linux-188.8.131.52-0.7-default-x86_64-with-SuSE-11-x86_64
> This is expected on a 64-bit platform. Note that numpy.int is just an
> alias for the builtin int type for backwards compatibility with an
> earlier version of numpy. We could probably remove it, since it seems
> to be causing more confusion than not.
> Anyways, we subclass the appropriately sized integer scalar type from
> Python's int type depending on the platform. So on a platform where
> Python's int type is 64-bits, numpy.int64 will include int in its
> inheritance tree. On platforms where the Python int type is 32-bit,
> numpy.int32 will include it instead.
> I'll just add that there is a numpy.integer class that is parent of both
> numpy.int32 and numpy.int64 (see
> http://docs.scipy.org/doc/numpy/reference/arrays.scalars.html). It's not
> a parent of numpy.int though, since as said above, numpy.int is an alias
> to the builtin int.
> -=- Olivier
> Thanks you for the information. numpy.integer is what I was looking for.
> Is there an equivalent base class for float types?
> Do you know where these are documented?
numpy.floating would be the one for non-complex float types (and
numpy.inexact the parent for both complex and non-complex). The class
hierarchy is shown in the link I provided in my previous mail.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the NumPy-Discussion