
Hi all, I am reading a datagram which contains within it a type. The type dictates the structure of the datagram. I want to put this into a numpy structure, one of which is: np.zeros(1,dtype=('2uint8,uint8,uint8,uint32,8uint8,504uint8,8uint8,504uint8')) As I don't know what I'm getting until I've read it (it seems I have to read the whole datagram in one read) I don't know the shape of the structure to use. I have tried reading into: np.zeros(1032, dtype='uint8') and then attempting to copy to the correct structure. How should I do this copy as numpy.copy() does not seem to work as if I then try to read some fields in the structure it complains the fields don't exist. Is there a better way to do this kind of thing, preferably without causing a data copy? Thasnks Bob

On Fri, Jun 8, 2012 at 11:31 AM, Bob Cowdery <bob@bobcowdery.plus.com> wrote:
Hi all,
I am reading a datagram which contains within it a type. The type dictates the structure of the datagram. I want to put this into a numpy structure, one of which is: np.zeros(1,dtype=('2uint8,uint8,uint8,uint32,8uint8,504uint8,8uint8,504uint8'))
As I don't know what I'm getting until I've read it (it seems I have to read the whole datagram in one read) I don't know the shape of the structure to use.
I have tried reading into: np.zeros(1032, dtype='uint8')
and then attempting to copy to the correct structure. How should I do this copy as numpy.copy() does not seem to work as if I then try to read some fields in the structure it complains the fields don't exist.
Is there a better way to do this kind of thing, preferably without causing a data copy?
I'm not sure I followed what exactly is going on here, but in general if you want to take a chunk of memory that's inside a numpy array and re-interpret it in-place as being of a new dtype, then the way you do that is my_array.view(dtype=<new dtype>) HTH, -n
participants (2)
-
Bob Cowdery
-
Nathaniel Smith