I found the Galois library to do this:
import galois GF2 = galois.GF(2) x = GF2([[0, 0], [1, 1]]) y = GF2([[0, 1], [1, 0]]) x @ y
Gives the correct answer,
GF([[0, 0], [1, 1]], order=2)