Если вы используете numpy, вы можете сделать что-то вроде:
bits_count = 2
bit_weights = 2**np.arange(2)[::-1]
data = np.array([[1, 0, 0, 1, 0, 1, 0, 1],
[0, 1, 1, 0, 1, 0, 1, 1],
[1, 0, 1, 0, 1, 1, 0, 0],
[1, 0, 1, 1, 0, 1, 1, 0],
[1, 1, 0, 0, 0, 1, 0, 1]]
)
(data.reshape((data.shape[0], -1, 2)) * bit_weights).sum(axis=2)