Teste se a matriz é invertida sobre o campo finito

Eu gostaria de testar se um determinado tipo de matriz aleatória é invertível em um campo finito, em particular F_2. Eu posso testar se uma matriz é invertível sobre os reais usando o seguinte código simples.

import random
from scipy.linalg import toeplitz
import numpy as np
n=10
column = [random.choice([0,1]) for x in xrange(n)]
row = [column[0]]+[random.choice([0,1]) for x in xrange(n-1)]
matrix = toeplitz(column, row)
if (np.linalg.matrix_rank(matrix) < n):
    print "Not invertible!"

Existe alguma maneira de conseguir a mesma coisa, mas mais de F_2?

questionAnswers(2)

yourAnswerToTheQuestion