import numpy as np def det(a): if len(a) == 1: return a[0][0] if len(a) == 2: return a[0][0] * a[1][1] - a[0][1] * a[1][0] result = 0 for col in range(len(a)): minor = [ [a[row][c] for c in range(len(a)) if c != col] for row in range(1, len(a)) ] result += ((-1) ** col) * a[0][col] * det(np.array(minor)) return result __ __