[Numpy-discussion] dtype attribute missing in numarray
haase at msg.ucsf.edu
Thu Jan 5 11:03:12 CST 2006
On Thursday 05 January 2006 10:25, you wrote:
> Sebastian Haase wrote:
> >Thanks Todd,
> >I like this a lot. Maybe it could be mentioned in the documention - I
> > don't have any good suggestions on where, I just noticed that 'dtype' is
> > not in the index.
> >I assume the following assignment to 'dtype' is not that important !?
> >>>>a = na.arange(10,dtype=na.float32)
> >>>>a.dtype = na.int32
> >Traceback (most recent call last):
> > File "<input>", line 1, in ?
> >AttributeError: can't set attribute
> Things are changing fast but I don't think this is supposed to work:
> >>> import scipy
> >>> a = scipy.arange(10)
> >>> a
> array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
> >>> a.dtype
> <type 'int32_arrtype'>
> >>> a.dtype = scipy.int16
> Traceback (most recent call last):
> File "<stdin>", line 1, in ?
> TypeError: attribute 'dtype' of 'scipy.bigndarray' objects is not writable
> My thinking was that you'd need a.astype() which returns a new array
> object. Since types vary in size, it's not clear what it means to
> assign type or how it would affect shape.
No, only assignment with a type of same size was supposed to work - that's
what I remember having read somewhere !.... BUT I think having that
restriction would be weird to say the least ...
Event thought being able to say 'a.dtype = <any type>' just like one can say
'a.shape = <new shape>' would look nice . Then again <any shape> only
includes shapes that are "compatible" are accepted -> so that "compatible
types" _would_ really be the consequent restriction !?!?
> >Also: when / why was it decided that dtypes (float32, int32, ...) should
> > be lowercase !? Aren't all python types usually uppercase ...
> The naming looks clean to me. I don't know how the decision was made.
Is numarray going to change to this ( i.e. a.dtype would return 'uint32' and
'UInt32' would be the alias ) ?
More information about the Numpy-discussion