On Thu, Feb 12, 2015 at 3:22 PM, Neal Becker <ndbeck...@gmail.com> wrote: > > Robert Kern wrote: > > > On Thu, Feb 12, 2015 at 3:00 PM, Neal Becker <ndbeck...@gmail.com> wrote: > >> > >> Robert Kern wrote: > >> > >> > On Thu, Feb 12, 2015 at 2:21 PM, Neal Becker <ndbeck...@gmail.com> > > wrote: > >> >> > >> >> I need to transmit some data values. These values will be float and > > long > >> >> values. I need them encoded into a string of bits. > >> >> > >> >> The only way I found so far to do this seems rather roundabout: > >> >> > >> >> > >> >> np.unpackbits (np.array (memoryview(struct.pack ('d', pi)))) > >> >> Out[45]: > >> >> array([0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, > > 1, > >> > 0, > >> >> 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 1, 0, > > 0, > >> > 0, > >> >> 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0], > > dtype=uint8) > >> >> > >> >> (which I'm not certain is correct) > >> >> > >> >> Also, I don't know how to reverse this process > >> > > >> > You already had your string ready for transmission with > > `struct.pack('d', > >> > pi)`. > >> > > >> > -- > >> > Robert Kern > >> > >> my transmitter wants an np array of bits, not a string > > > > Can you provide any details on what your "transmitter" is? > > > > -- > > My transmitter is c++ code that accepts as input a numpy array of np.int32. > Each element of that array has value 0 or 1.
Ah, great. That makes sense, then. def tobeckerbits(x): return np.unpackbits(np.frombuffer(np.asarray(x), dtype=np.uint8)).astype(np.int32) def frombeckerbits(bits, dtype): return np.frombuffer(np.packbits(bits), dtype=dtype)[0] -- Robert Kern
_______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion