import numpy as np filename = "inputs/day3.input" file = open(filename, "rb").readlines() inputs = file inputs = [list(y.decode().replace("\n", "")) for y in inputs] oxymat = np.array(inputs, dtype=int) comat = np.array(inputs, dtype=int) for i in range(oxymat.shape[1]): oxyones = np.count_nonzero(oxymat, axis=0, keepdims=True) coones = np.count_nonzero(comat, axis=0, keepdims=True) print(oxymat) if oxymat.shape[0] > 1: if oxyones[0, i] >= (oxymat.shape[0] - oxyones[0, i]): oxymat = oxymat[oxymat[:, i] == 1] else: oxymat = oxymat[oxymat[:, i] == 0] if comat.shape[0] > 1: if coones[0, i] >= (comat.shape[0] - coones[0, i]): comat = comat[comat[:, i] == 0] else: comat = comat[comat[:, i] == 1] print(oxymat[0], oxymat[0].dot(2 ** np.arange(oxymat[0].size)[::-1])) print(comat[0], comat[0].dot(2 ** np.arange(comat[0].size)[::-1])) print( oxymat[0].dot(2 ** np.arange(oxymat[0].size)[::-1]) * comat[0].dot(2 ** np.arange(comat[0].size)[::-1]), )