To get bits from bytes:
bytes = bytes([0x13, 0x00, 0x00, 0x00, 0x08, 0x00])
bits = numpy.unpackbits(bytes)
throws this error:
TypeError: Expected an input array of unsigned byte data type
but if I get bytes in this way it works:
bytes = numpy.fromfile(filename, dtype="uint8")
How to solve this error, thanks.
>Solution :
You have to pass an array with a dtype of unsigned integer:
hex_codes = 0x13, 0x00, 0x00, 0x00, 0x08, 0x00
arr = np.array(hex_codes).astype(np.uint8)
np.unpackbits(arr)
Output:
array([0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0], dtype=uint8)
Btw, you probably know this, but you should not reassign a builtin as you did with bytes.