defrref(matrix):# Convert to float for division operations
A = matrix.astype(np.float32)
n, m = A.shape
for i inrange(n):if A[i, i]==0:
nonzero_rel_id = np.nonzero(A[i:, i])[0]iflen(nonzero_rel_id)==0:continue
A[i]= A[i]+ A[nonzero_rel_id[0]+ i]
A[i]= A[i]/ A[i, i]for j inrange(n):if i != j:
A[j]-= A[j, i]* A[i]return A