[Numpy-discussion] "formstring()" in place?
Janko Hauser
jhauser at ifm.uni-kiel.de
Fri Nov 3 15:06:00 CST 2000
Chris Barker writes:
> "Paul F. Dubois" wrote:
> > >>> y=array([1,2,3], '1')
> > >>> y
> > array([1, 2, 3],'1')
> > >>> y.astype(Int32)
> > array([1, 2, 3],'i')
>
> Actually, this is exactly NOT what I want to do. In this case, each 1
> byte interger was converted to a 4byte integer, of the same VALUE. What
> I want is to convert each SET of four bytes into a SINGLE 4 byte integer
> as it:
>
> >>> a = array([1,2,3,4],'1')
> >>> a = fromstring(a.tostring(),Int32)
> >>> a
> array([67305985],'i')
>
A brut force way would be to do the transformation yourself :-)
>>> bits=array([1,256,256*256,256*256*256])
>>> sum(array([1,2,3,4])*bits)
67305985
So you need to reshape your array into (?,4) and multiply by bits.
And regarding your numpyio question, you can also read characters,
which are then put into an array by itself. It seems you have a very
messy file format (but the data world is never easy)
HTH,
__Janko
--
Institut fuer Meereskunde phone: 49-431-597 3989
Dept. Theoretical Oceanography fax : 49-431-565876
Duesternbrooker Weg 20 email: jhauser at ifm.uni-kiel.de
24105 Kiel, Germany
More information about the Numpy-discussion
mailing list