Вам необходимо передать список / последовательность в качестве первого аргумента np.concatenate , в то время как вторым параметром является ось, вдоль которой будут сцепляться массивы. Поэтому вам просто нужно изменить код следующим образом:
def inverted_matrix(m):
if np.linalg.det(m) == 0:
return False
x = np.concatenate([m,m_ident(m)])
return x
Однако обратите внимание, что m_ident
меняет сам m
, а не создает новую матрицу, и поэтому вы получите две сцепленные матрицы идентичности.
Чтобы избежать этого, вы можете:
def m_ident(m):
I = np.zeros(m.shape)
for i in range(0,m.shape[0]):
for j in range(0,m.shape[1]):
if i == j:
I[i,j] = 1
return I
или даже лучше использовать np.identity .