import numpy as np
def cofactor(A,r,c):
nr, nc = A.shape
B = np.zeros((nr-1,nc-1))
for i in range(nr-1):
for j in range(nc-1):
s, t = i, j
if i>=r:
s = i+1
if j>=c:
t = j+1
B[i,j] = A[s,t]
return B
def rcdet(A):
nr, nc = A.shape
if nr == 1:
return A[0,0]
else:
t = 0.0
for j in range(nc):
t += ((-1)**j)*A[0,j]*rcdet(cofactor(A,0,j))
return t