
At 07:45 AM 2/12/2015, you wrote:
Robert Kern wrote:
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
Nice! Also seems to work for arrays of values:
s='np.unpackbits(np.frombuffer(np.asarray(np.pi),
It's also fastest, with most pushed to numpy: dtype=np.uint8)).astype(np.int32)'
timr(s) 0.000252470827292 s="np.array([b for b in bin(struct.unpack('!i',struct.pack('!f',1.0))[0])[2:]], 'int32')" timr(s) 0.000513665240078 s="np.unpackbits (np.array (memoryview(struct.pack ('d', np.pi)))).astype(np.int32)" timr(s) 0.000466455247988 s="np.array([b for b in np.binary_repr(314159)], 'int32')" timr(s) 0.000423350472602