On Mon, Sep 7, 2009 at 6:36 PM, Skipper Seabold<jsseab...@gmail.com> wrote: > Hello all, > > I ran into a problem with some of my older code (since figured out the > user error). However, in trying to give a simple example that > replicates the problem I was having, I ran into this. > > In [19]: a = np.array((1.)) > > In [20]: a > Out[20]: array(1.0) > > # the dtype is 'float64' > > In [21]: a.dtype='<i8'
The way I understand it is: Here you are telling numpy to interpret the existing memory/data in a different way, which might make sense or not depending on the types, e.g. I also used this to switch between structured arrays and regular arrays with compatible memory. However it does not convert the data. If you want to convert the data to a different type, numpy needs to create a new array, e.g. with astype >>> a = np.array((1.)) >>> b = a.astype('<i8') >>> b array(1L, dtype=int64) Josef > > In [22]: a > Out[22]: array(4607182418800017408) > > I've seen some recent threads about handling changes in types, but I > didn't follow closely, so forgive me if I'm missing something that is > known. In general, is it just a bad idea to touch the dtype like > this? > > Best, > Skipper > _______________________________________________ > NumPy-Discussion mailing list > NumPy-Discussion@scipy.org > http://mail.scipy.org/mailman/listinfo/numpy-discussion > _______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion